带有SMTP的ActionMailer - 收件人地址语法错误

时间:2013-12-09 08:08:14

标签: ruby-on-rails smtp actionmailer

我的用户使用以下格式发送电子邮件:“ - user-@domain.com”。 Mailgun验证成功但Rails无法向该地址发送电子邮件。我在Mandrill上使用SMTP。 这是错误消息:

/home/johnny/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/1.9.1/net/smtp.rb:948:in `check_response': 401 4.1.3 Bad recipient address syntax (Net::SMTPServerBusy)

你有什么想法吗?

提前致谢。

更新

此示例代码(具有有效的SMTP配置)会引发错误:

#!/usr/bin/env ruby
require 'mail'

options = {
    address:      "smtp.mandrillapp.com",
    port:     587,
    domain:     "mydomain.com",
    authentication:   "login",
    user_name:    "myemail@mydomain.com",
    password:     "mypassword",
    enable_starttls_auto: false
}

Mail.defaults do
    delivery_method :smtp, options
end

Mail.deliver do
    from 'valid.email@domain.com'
    to "-test-@domain.com"
    subject 'Testing sendmail'
    body 'Testing sendmail'
end

1 个答案:

答案 0 :(得分:2)

即使电子邮件地址中的起始短划线有效,由于命令行参数的限制,大多数邮件服务器都不接受此类电子邮件。

您可以尝试的快速解决方法是使用尖括号包装电子邮件地址:

Mail.deliver do
  from 'valid.email@domain.com'
  to "<-test-@domain.com>"
  subject 'Testing sendmail'
  body 'Testing sendmail'
end