2

我在使用 SMTP 从 Rails 应用程序发送邮件时遇到问题。我有一Mailer堂课:

class Mailer < ActionMailer::Base
  def newsletter_confirmation(subscription)
    recipients  "my-valid-email@gmail.com" # this is set to my email 
                                           # just for testing purposes and will
                                           # be changed to subscription.email 
    from        "\"my-valid-helo-domain.net\" <noreply@my-valid-helo-domain.net>"
    subject     "Confirm your subscription"
    body        :subscription => subscription
  end
end

当我尝试发送邮件时,我得到一个Net::SMTPSyntaxError

501 <["noreply@my-valid-helo-domain.net"]>: missing or malformed local part

如果我注释掉该from字段,则邮件可以正常发送,但缺少发件人信息(显然)。
关于我做错了什么的任何想法?

谢谢。

编辑:我正在使用 Rails 2.3.2 和 Ruby 1.9.1

4

2 回答 2

2

错误代码和错误描述表明这是邮件服务器上的错误。

我建议您检查邮件服务器以查明错误。

对于 ActionMailer,如果设置了配置参数 raise_delivery_errors 应该引发异常(我相信在生产中默认但在开发中没有),因此您可以检查该异常并尝试在触发时重新发送。

编辑:

这是解决方案(这是一个 Ruby/Rails 1.9 错误):

https://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets/2340-action-mailer-cant-deliver-mail-via-smtp-on-ruby-191

和补丁:

https://rails.lighthouseapp.com/projects/8994/tickets/2340/a/104008/action_mailer-ruby-1.9-from-address-fix.patch

于 2009-07-27T10:27:33.680 回答
1

这是一个已知的错误。https://rails.lighthouseapp.com/projects/8994/tickets/2340

于 2009-11-11T17:56:18.220 回答