首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mandrill不发送

Mandrill不发送
EN

Stack Overflow用户
提问于 2015-01-19 10:36:56
回答 1查看 280关注 0票数 0

我试图设置Mandrill API,以便在用户单击按钮时发送电子邮件,但我似乎无法让它发送。电子邮件将非常好地从控制台发送,所以我知道这不是一个模板的问题(设计电子邮件也发送查找)。

我认为这与我如何在控制器中设置它有关,但我找不到任何帮助,说明我应该把它放在哪里。

下面是控制器的代码:

代码语言:javascript
复制
  def attending
     @event = Event.find(params[:id])
     type = params[:type]
     if type == "attending" && @event.space != 0
        current_user.attending << @event
        @event.space = @event.space - 1
        @event.save
        AdminMailer.new_attending(@event.user, current_user)
        redirect_to :back, notice: "You've joined the group. Your number will be sent to #{@event.user.name}"

     else type == "unattending"
        current_user.attending.delete(@event)
     redirect_to :back, notice: "You've removed yourself from the group"
     end
  end

这是admin_mailer.rb

代码语言:javascript
复制
class AdminMailer < ActionMailer::Base

  require 'mandrill'

  def mandrill_client
    @mandrill_client ||= Mandrill::API.new MANDRILL_API_KEY
  end

  def new_attending(creator, user)
    template_name = "new-attending"
    template_content = []
    message = {
      to: [{email: creator.email, name: creator.name}],
      subject: "Someone wants to go riding with you!",
     merge_vars: [
       {rcpt: creator.email,
       vars: [
          {name: "CREATOR_NAME", content: creator.name},
          {name: "USER_NAME", content: user.name},
          {name: "USER_NUMBER", content: user.number}
          ]}
      ]
    }
    mandrill_client.messages.send_template template_name, template_content, message
  end

end

下面是他们在view.html.erb中点击的应该发送电子邮件的链接:

代码语言:javascript
复制
 <td><% if event.user != current_user && event.space != 0 && user_signed_in? %>
     <% unless event.attendees.include?(current_user) %>
     <%= link_to "Join", attending_event_path(event, type: "attending"), class: "btn btn-primary btn-xs", method: :put %>
     <% end %>
  <% end %></td>

任何帮助找出为什么它不发送将是伟大的!正如我说过的,当我键入:

代码语言:javascript
复制
AdminMailer.new_attending(@event, @user)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-19 10:59:01

请替换以下代码。

代码语言:javascript
复制
AdminMailer.new_attending(@event.user, current_user)

使用

代码语言:javascript
复制
AdminMailer.new_attending(@event.user, current_user).deliver

我希望这会成功。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28022645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档