我在使用 SMTP 从 Rails 应用程序发送邮件时遇到问题。我有一个Mailer
类:
class Mailer < ActionMailer::Base
def newsletter_confirmation(subscription)
recipients "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="ef8296c2998e83868bc28a828e8683af88828e8683c18c8082" rel="noreferrer noopener nofollow">[email protected]</a>" # this is set to my email
# just for testing purposes and will
# be changed to subscription.email
from "\"my-valid-helo-domain.net\" <<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="7c12130e190c10053c1105510a1d1015185114191013511813111d151252121908" rel="noreferrer noopener nofollow">[email protected]</a>>"
subject "Confirm your subscription"
body :subscription => subscription
end
end
当我尝试发送邮件时,我收到 Net::SMTPSyntaxError
:
501 <["<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="3a5455485f4a56437a5743174c5b56535e17525f5655175e55575b535414545f4e" rel="noreferrer noopener nofollow">[email protected]</a>"]>: missing or malformed local part
如果我注释掉from
字段,邮件已正常投递,但发件人信息丢失(显然)。
关于我做错了什么有什么想法吗?
谢谢。
编辑:我正在使用 Rails 2.3.2 和 Ruby 1.9.1
最佳答案
错误代码和错误描述表明这是邮件服务器上的错误。
我建议您检查邮件服务器以查明错误。
当涉及到 ActionMailer 时,如果设置了配置参数 raise_delivery_errors(我相信在生产中默认,但在开发中则不然),它应该会引发异常,因此您可以检查该异常,并在触发时尝试重新发送。
编辑:
这是解决方案(这是 Ruby/Rails 1.9 的错误):
和补丁:
关于ruby-on-rails - ActionMailer : 501 <>: missing or malformed local part 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1187060/