首页 > 解决方案 > 在 Mailer 中创建包含链接的邮件

问题描述

只要我不在正文中添加链接,我创建的邮件就可以正常工作。一旦在平台上将消息定向到收件人,我希望有一封电子邮件发送给收件人。

<%= link_to "See message", @message %>似乎不起作用。是否有针对该问题的特定方法?到目前为止,我所看到的都不是很清楚。

错误信息是:

ActionController::UrlGenerationError in Rails::Mailers#preview

Message-mailer.rb 文件:

class MessageMailer < ApplicationMailer

  def new_message(message)
    @message = message

    @title = message.title
    @from_first_name = User.find_by_id(message.user_id).first_name
    @from_last_name = User.find_by_id(message.user_id).last_name


    mail to: @message.user.email,
         subject: "New Message: #{@message.title}"

  end
end

标签: ruby-on-rails

解决方案


Mailer 不在响应堆栈中,您需要指定主机或从 env 将其设为默认值。

类似的答案链接和操作邮件链接

<p>Hi <%= "#{@email}"%>,</p>
<p>
    Message Link: <%=  link_to "See Message", 
                        message_url(id: @message.id, host: "http://localhost:3000")%>    
</p>

# development.rb - for default
config.action_mailer.default_url_options = { :host => "localhost" }

推荐阅读