如何使用`mail` gem指定谁发送电子邮件?

时间:2013-08-07 07:08:11

标签: ruby-on-rails ruby email smtp mail-gem

我使用下面非常简单的代码发送带有mail gem的电子邮件。当我发送电子邮件时,smtp_account.user_namesmtp_account.from可以是例如support@thebestcompany.com。这会导致收件人看到他收到了来自support的电子邮件(您知道,在他的收件箱中,他可以获得他最近x封电子邮件的概述)。我如何指定这一点,以便收件人可以看到更有趣的内容,例如The Best Company

require 'mail'

class SmtpMails

  def self.send_mails(smtp_account, to, subject, text)
    options = {
      :address              => smtp_account.address,
      :port                 => smtp_account.port,
      :domain               => smtp_account.domain,
      :user_name            => smtp_account.user_name,
      :password             => smtp_account.password,
      :authentication       => smtp_account.authentication,
      :enable_starttls_auto => smtp_account.enable_starttls_auto
    }

    Mail.defaults do
      elivery_method :smtp, options
    end

    mail = Mail.deliver do
      to to
      from smtp_account.from
      subject subject
    end
  end
end

2 个答案:

答案 0 :(得分:0)

mail.from.addresses
mail.sender.address

试试这个。

答案 1 :(得分:0)

在指定电子邮件的发件人时,您需要添加一些其他信息。以下代码段应该可以执行您想要的操作:

mail = Mail.deliver do
  to to
  from "The Best Company <#{smtp_account.from}>"
  subject subject
end

将电子邮件地址放在<>括号之间是为正在发送的电子邮件添加友好名称的标准做法。