0

我有一个允许用户请求注册活动的应用程序。当一个邀请请求被提交时,控制器执行这段代码:

EventMailer.notify_admins(@user, subject, topic).deliver

该应用程序运行良好(开发、测试和生产),但几周前,通过测试和生产环境填写的邀请请求停止向管理员发送电子邮件。它在开发环境中仍然可以正常工作。当我检查测试环境日志文件时,我在其中看到以下内容:

Rendered event_mailer/notify_admins.html.erb (1.3ms)        
Rendered event_mailer/notify_admins.text.erb (1.0ms)        

Sent mail to xxxx@xxxxx.com (1529ms)        
Date: Fri, 01 Mar 2013 20:45:00 +0000        
From: xxxx@xxxxxxx.com        
To: xxxx@xxxxx.com        
Message-ID: <5131134cdd3aa_3cf96d18707060@xxxx-test.mail>        
Subject: Invite request received from: John Doe        
Mime-Version: 1.0        
Content-Type: multipart/alternative;        
boundary="--==_mimepart_5131134cc6832_3cf96d1870674a";        
charset=UTF-8        
Content-Transfer-Encoding: 7bit        



----==_mimepart_5131134cc6832_3cf96d1870674a        
Date: Fri, 01 Mar 2013 20:45:00 +0000        
Mime-Version: 1.0        
Content-Type: text/plain;        
 charset=UTF-8        
Content-Transfer-Encoding: 7bit        
Content-ID: <5131134cd7f78_3cf96d18706818@xxxx-test.mail>        

Invite request received from:         

First Name: John        
Last Name: Doe        
Email Address: john_doe@xxxx.com        

http://test.xxxxx.com/users/109/edit        



----==_mimepart_5131134cc6832_3cf96d1870674a        
Date: Fri, 01 Mar 2 013 20:45:00 +0000        
Mime-Version: 1.0        
Content-Type: text/html;        
 charset=UTF-8        
Content-Transfer-Encoding: 7bit        
Content-ID: <5131134cdb33d_3cf96d187069bd@dent-test.mail>        

<p>Invite request received from: </p>        

<p>First Name: John </p>        
<p>Last Name: Doe </p>        
<p>Email Address: john_doe@xxxxx.com </p>        

http://test.xxxx.com/users/109/edit        

<a href=""> Click here to manage request </a>        


----==_mimepart_5131134cc6832_3cf96d1870674a--        

Redirected to http://test.xxxxx.com/        
Completed 302 Found in 3343ms (ActiveRecord: 99.8ms)        

...但是没有收到电子邮件,当我查看邮件日志(已发送的电子邮件、Google 邮件)时,我在已发送的文件夹中看不到任何内容(尽管在开发环境中发送正常)

我使用谷歌应用程序作为我的邮件服务器,开发/测试/生产的代码完全相同。为了确保没有缓存资源,我还在测试和生产环境中预编译了资产并重新启动了 Apache 服务器。有任何想法吗?

环境

测试、开发和生产环境 smtp 设置部分相同:

config.action_mailer.delivery_method = :smtp
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = false
config.action_mailer.default :charset => "utf-8"

config.action_mailer.smtp_settings = {
    address: "smtp.gmail.com",
    port: 587,
    domain: "xxxxxxx.com",
    authentication: "plain",
    enable_starttls_auto: true,
    user_name: ENV["MY_EMAIL_FROM"],
    password: ENV["MY_EMAIL_FROM_PWD"]

}

当我在 TEST 和 PRODUCTION 上将 config.action_mailer.raise_delivery_errors 设置为 TRUE 时,我收到 500 错误。如果设置为 false,则根本不会发送电子邮件。

4

0 回答 0