在 Rails 中用 1and1.com 的邮件服务器发邮件
Monday, April 28th, 2008之前提到用 Google Apps 提供的邮件服务有每个帐户每天 500 封的限制,有个 tricky 的解决办法是设 100 个帐户在程序中轮训发送,这样一天最多可以发 50000 封。
不过的确没想到在 Rails 中的好办法,只是想可以在 Google Appps 中设置 no-reply1@your-domain.com 到 no-reply100@your-domain.com 这 100 个帐户,在 Rails 项目中设置一个全局量,1-100 循环用来决定发送邮件的帐户,然后在发送邮件的时候修改 ActionMailer::Base.smtp_settings 里面的相应属性。
哪位有更好的方法给提个醒
后来发现我们在 1and1.com 上面的帐户有 SMTP 的功能,于是乎添加一个 email account,SMTP 相应的设置为:
url: smtp.1and1.com
port: 25
username: your email address
password: your password
可以不开启 SSL
在 Rails 项目的 environment.rb 中设置:
ActionMailer::Base.smtp_settings = {
:address => “smtp.1and1.com”,
:domain => “1and1.com”,
:port => 25,
:authentication => :login,
:user_name => “no-reply@1kg.cn”,
:password => ‘1000g1000g’
}
发现不灵,发送不成功!Google 后在一篇文章中有看到用 ruby 的 net/smtp 发邮件的例子,用到的是 1and1.co.uk 的 SMTP,想来应该差不多。
看代码注意到 Net::SMTP.start 中有一个参数为 ‘1and1.co.uk’,这个应该是 SMTP 所在的 domain,在 Class::Net::SMTP 的文档中看到这个参数叫做 HELP domain(具体的含义参考 RFC2822)
照搬到 Rails 的设置中,给 ActionMailer::Base.smtp_settings 添加一个参数 :domain => 1and1.com 再试,果然发送成功。




