后缀& Rails 3.0 ActionMailer:STARTTLS后丢失连接

时间:2011-02-21 05:20:53

标签: email ruby-on-rails-3 actionmailer postfix-mta

我在开发模式下使用Ruby 1.9.2和Rails 3.0.4,我正在尝试将其配置为从安装在同一个盒子上的Postfix服务器发送电子邮件(运行带有dovecot-postfix软件包的Ubuntu 10.04) )每当我尝试从Rails发送电子邮件时,它会在Rails中干净利落地进行,但在Postfix日志中显示错误(我从下面的摘录中删除了域名和IP):

Feb 21 04:49:16 alpha postfix/smtpd[9060]: connect from alpha.mydomain.com[xxx.xxx.xxx.xxx]
Feb 21 04:49:16 alpha postfix/smtpd[9060]: lost connection after STARTTLS from alpha.mydomain.com[xxx.xxx.xxx.xxx]
Feb 21 04:49:16 alpha postfix/smtpd[9060]: disconnect from alpha.mydomain.com[xxx.xxx.xxx.xxx]

奇怪的是,当我从像Thunderbird这样的电子邮件客户端连接到SMTP服务器时,它没有任何问题。

我知道开发模式有时不允许发送电子邮件,所以我将以下内容添加到environment / development.rb文件中:

config.action_mailer.raise_delivery_errors = true
config.action_mailer.perform_deliveries = true

 #load mail server settings
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
  :address              => "mail.mydomain.com",
  :port                 => 587,
  :domain               => 'mydomain.com',
  :user_name            => 'username',
  :password             => 'password',
  :authentication       => 'plain',
  :tls  => true,
  :enable_starttls_auto => true  }

2 个答案:

答案 0 :(得分:11)

如果您只是从localhost发送电子邮件,那么您不需要SMTP及其附带的所有身份验证问题。您可以直接使用sendmail进行交付。

config.action_mailer.delivery_method = :sendmail

答案 1 :(得分:1)

您的证书是否可能无效,并且在发送电子邮件时Thunderbird会回归到普通SMTP?尝试在配置中禁用TLS。