Action Mailer不使用sendmail

时间:2012-02-16 13:12:25

标签: ruby-on-rails sendmail actionmailer postfix-mta

我正在尝试使用sendmail发送邮件。发送邮件时,我没有在日志中收到任何错误,但当我查看我的邮箱时,邮件不在那里,甚至在垃圾邮件文件夹中也没有。 我从var / log目录下的mail.log文件中获得了一些信息,但是无法弄明白,我需要改变它,以使其正常工作。

这是我的development.rb部分:

config.action_mailer.delivery_method = :sendmail
config.action_mailer.raise_delivery_errors = true

我尝试了两个不同的地址并获得了不同的消息: 这是来自我的mail.log:

Feb 16 13:55:22 localhost postfix/master[2821]: daemon started -- version 2.8.4, configuration /etc/postfix  
Feb 16 13:55:22 localhost postfix/pickup[2822]: 5E1C6CB8C1: uid=501 from=<fhu@informatik.uni-kiel.de>  
Feb 16 13:55:22 localhost postfix/cleanup[2824]: 5E1C6CB8C1: message-id=<4f3cfcba50ccf_ac695d96210305e1@localhost.mail>  
Feb 16 13:55:22 localhost postfix/qmgr[2823]: 5E1C6CB8C1: from=<fhu@informatik.uni-kiel.de>, size=882, nrcpt=1 (queue active)  
Feb 16 13:55:27 localhost postfix/smtp[2826]: 5E1C6CB8C1: to=<mkh@informatik.uni-kiel.de>, relay=miraculix.informatik.uni-kiel.de[134.245.248.198]:25, delay=5.3, delays=0.04/0.01/5.3/0.04, dsn=5.7.1, status=bounced (host miraculix.informatik.uni-kiel.de[134.245.248.198] said: 550 5.7.1 HELO localhost.localhost from RFC 2606 reserved domains blocked (in reply to MAIL FROM command))  
Feb 16 13:55:27 localhost postfix/cleanup[2824]: C0D2ACB8CB: message-id=<20120216125527.C0D2ACB8CB@localhost.localhost>  
Feb 16 13:55:27 localhost postfix/bounce[2829]: 5E1C6CB8C1: sender non-delivery notification: C0D2ACB8CB  
Feb 16 13:55:27 localhost postfix/qmgr[2823]: C0D2ACB8CB: from=<>, size=2932, nrcpt=1 (queue active)  
Feb 16 13:55:27 localhost postfix/qmgr[2823]: 5E1C6CB8C1: removed  
Feb 16 13:55:33 localhost postfix/smtp[2826]: C0D2ACB8CB: to=<fhu@informatik.uni-kiel.de>, relay=miraculix.informatik.uni-kiel.de[134.245.248.198]:25, delay=5.2, delays=0/0/5.2/0.04, dsn=5.7.1, status=bounced (host miraculix.informatik.uni-kiel.de[134.245.248.198] said: 550 5.7.1 HELO localhost.localhost from RFC 2606 reserved domains blocked (in reply to MAIL FROM command))  
Feb 16 13:55:33 localhost postfix/qmgr[2823]: C0D2ACB8CB: removed  

第二个地址:

Feb 16 13:56:22 localhost postfix/master[2821]: master exit time has arrived  
Feb 16 13:58:30 localhost postfix/master[2835]: daemon started -- version 2.8.4, configuration /etc/postfix  
Feb 16 13:58:30 localhost postfix/pickup[2836]: 91FFCCB947: uid=501 from=<xxx@informatik.uni-kiel.de>  
Feb 16 13:58:30 localhost postfix/cleanup[2838]: 91FFCCB947: message-id=<4f3cfd7684947_ac695dc9a5c306de@localhost.mail>  
Feb 16 13:58:30 localhost postfix/qmgr[2837]: 91FFCCB947: from=<xxx@informatik.uni-kiel.de>, size=878, nrcpt=1 (queue active)  
Feb 16 13:58:30 localhost postfix/smtp[2840]: connect to mx.freenet.de[2001:748:100:40::8:110]:25: No route to host  
Feb 16 13:58:30 localhost postfix/smtp[2840]: connect to mx.freenet.de[2001:748:100:40::8:112]:25: No route to host  
Feb 16 13:58:30 localhost postfix/smtp[2840]: connect to mx.freenet.de[2001:748:100:40::8:111]:25: No route to host  
Feb 16 13:58:30 localhost postfix/smtp[2840]: 91FFCCB947: to=<xxx@freenet.de>, relay=mx.freenet.de[195.4.92.9]:25, delay=0.32, delays=0.04/0.01/0.23/0.04, dsn=5.0.0, status=bounced (host mx.freenet.de[195.4.92.9] said: 550 Submission from dynamic IP 82.83.107.102 requires authentication (in reply to RCPT TO command))  
Feb 16 13:58:30 localhost postfix/cleanup[2838]: DF128CB94C: message-id=<20120216125830.DF128CB94C@localhost.localhost>  
Feb 16 13:58:30 localhost postfix/bounce[2843]: 91FFCCB947: sender non-delivery notification: DF128CB94C  
Feb 16 13:58:30 localhost postfix/qmgr[2837]: DF128CB94C: from=<>, size=2864, nrcpt=1 (queue active)  
Feb 16 13:58:30 localhost postfix/qmgr[2837]: 91FFCCB947: removed  
Feb 16 13:58:36 localhost postfix/smtp[2840]: DF128CB94C: to=<xxx@informatik.uni-kiel.de>, relay=miraculix.informatik.uni-kiel.de[134.245.248.198]:25, delay=5.3, delays=0/0/5.3/0.04, dsn=5.7.1, status=bounced (host miraculix.informatik.uni-kiel.de[134.245.248.198] said: 550 5.7.1 HELO localhost.localhost from RFC 2606 reserved domains blocked (in reply to MAIL FROM command))  
Feb 16 13:58:36 localhost postfix/qmgr[2837]: DF128CB94C: removed  
~              

在我的user_mailer.rb中,我有这个:

default :from => "xxx@informatik.uni-kiel.de"

我也试过

config.action_mailer.sendmail_settings = 
    { :arguments => '-i -t -f xxx@informatik.uni-kiel.de'}

然后mail.log仍然如下:

Feb 16 14:54:57 localhost postfix/master[2893]: daemon started -- version 2.8.4, configuration /etc/postfix  
Feb 16 14:54:57 localhost postfix/qmgr[2895]: 9DBF4CB857: from=<xxx@informatik.uni-kiel.de>, size=859, nrcpt=1 (queue active)
Feb 16 14:54:58 localhost postfix/pickup[2894]: A3120CC90B: uid=501 from=<xxx@informatik.uni-kiel.de>  
Feb 16 14:54:58 localhost postfix/cleanup[2896]: A3120CC90B: message-id=<4f3d0ab19405d_b4999f2bd74125b1@localhost.mail>  
Feb 16 14:54:58 localhost postfix/qmgr[2895]: A3120CC90B: from=<xxx@informatik.uni-kiel.de>, size=880, nrcpt=1 (queue active)  
Feb 16 14:54:58 localhost postfix/smtp[2906]: connect to mx.freenet.de[2001:748:100:40::8:111]:25: No route to host  
Feb 16 14:54:58 localhost postfix/smtp[2906]: connect to mx.freenet.de[2001:748:100:40::8:112]:25: No route to host  
Feb 16 14:54:58 localhost postfix/smtp[2906]: connect to mx.freenet.de[2001:748:100:40::8:110]:25: No route to host  
Feb 16 14:54:58 localhost postfix/smtp[2906]: A3120CC90B: to=<xxx@freenet.de>, relay=mx.freenet.de[195.4.92.212]:25, delay=1.3, delays=1/0.01/0.17/0.05, dsn=5.0.0, status=bounced (host mx.freenet.de[195.4.92.212] said: 550 Submission from dynamic IP 82.83.107.102 requires authentication (in reply to RCPT TO command))  
Feb 16 14:54:58 localhost postfix/cleanup[2896]: E3597CC90F: message-id=<20120216135458.E3597CC90F@localhost.localhost>  
Feb 16 14:54:58 localhost postfix/qmgr[2895]: E3597CC90F: from=<>, size=2868, nrcpt=1 (queue active)  
Feb 16 14:54:58 localhost postfix/bounce[2907]: A3120CC90B: sender non-delivery notification: E3597CC90F  
Feb 16 14:54:58 localhost postfix/qmgr[2895]: A3120CC90B: removed  
~                                                                            

我试图telnet mx.freenet.de 25并获得连接。我真的很感激任何帮助。

谢谢!

1 个答案:

答案 0 :(得分:3)

ActionMailer正常工作,并通过sendmail api将消息发送到postfix。

但postfix正在弹出消息,因为HELO命令中的发件人计算机名称是localhost.localhost。

在rails中设置发件人的主机和名称,它应该更好。

docs

可能需要在操作系统级别(而不是rails)设置主机。在超级用户列表上询问。查看将hostname命令提供给操作系统时会发生什么。如果它返回“localhost.localhost”,那么这是第一个要解决的问题。