带有RoR的sendmail:没有收到邮件

时间:2014-11-25 12:38:10

标签: ruby-on-rails email sendmail

我在Rails应用程序中使用sendmail。配置如下所示,

config.action_mailer.perform_deliveries = true
  config.action_mailer.raise_delivery_errors = true
  config.action_mailer.default_url_options = { :host => 'localhost' }
  config.action_mailer.default_options = {from: 'no-reply@example.com'}
  config.action_mailer.delivery_method = :sendmail

当我重新启动apache2服务器和sendmail服务时,我会收到一封邮件(一次)。但是,如果稍后我尝试发送邮件,它会将状态显示为200-ok,但我不会收到任何邮件。

供参考:

即使对于localhost:3000

,也会发现同样的问题

以下是我的mail.log输出

Nov 25 17:58:02 dosysnet267 sendmail[1602]: sAPCS2X3001602: Authentication-Warning: dosysnet267.dreamorbit.in: DREAMORBIT\\karthik.ds set sender to no-reply@gmail.com using -f
Nov 25 17:58:02 dosysnet267 sendmail[1602]: sAPCS2X3001602: from=no-reply@gmail.com, size=473, class=0, nrcpts=1, msgid=<547475d2aa8c3_5dc181896c66978@dosysnet267.mail>, relay=DREAMORBIT\\karthik.ds@localhost
Nov 25 17:58:03 dosysnet267 sm-mta[1604]: sAPCS2bg001604: from=<no-reply@gmail.com>, size=774, class=0, nrcpts=1, msgid=<547475d2aa8c3_5dc181896c66978@dosysnet267.mail>, proto=ESMTP, daemon=MTA-v4, relay=localhost [127.0.0.1]
Nov 25 17:58:03 dosysnet267 sendmail[1602]: sAPCS2X3001602: to=karthik.ds@example.com, ctladdr=no-reply@gmail.com (1200096887/1200095745), delay=00:00:01, xdelay=00:00:01, mailer=relay, pri=30473, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (sAPCS2bg001604 Message accepted for delivery)
Nov 25 17:58:05 dosysnet267 sm-mta[1609]: sAPCS2bg001604: to=<karthik.ds@example.com>, delay=00:00:03, xdelay=00:00:02, mailer=esmtp, pri=120774, relay=example.com. [174.136.95.75], dsn=2.0.0, stat=Sent (OK)

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

当我需要在测试rails应用程序时发送电子邮件时,我会在开发文件中使用此代码。然后用你的gmail凭据填写它。 rails应用程序随后将通过gmail通过您的Gmail帐户发送电子邮件。

config/environments/development.rb

config.action_mailer.raise_delivery_errors = true
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:address              => "smtp.gmail.com",
:port                 => 587,
:domain               => 'gmail.com',
:user_name            => 'youremail@gmail.com',
:password             => 'yourpassword',
:authentication       => 'plain',
:enable_starttls_auto => true  }
config.action_mailer.default_url_options = { :host => "localhost:3000" } 

答案 1 :(得分:0)

感谢您查看此问题。它工作正常。由于我的邮箱问题,我无法收到邮件。