背景使用Gmail的ActionMailer設置使用Rails 3.2 Amazon EC2實例
運行試圖解決與Gmail的設置有關亞馬遜EC2 Ubuntu的實例中運行的ActionMailer在Rails的3.2.x中的問題。該應用程序使用Nginx + Passenger運行。
的設置如下
文件:配置/環境/ production.rb
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:domain => "gmail.com",
:authentication => :plain,
:user_name => "<username>@gmail.com",
:password => "<secret-word>",
:enable_starttls_auto => true
}
現正在研究谷歌帳戶,通過Web登錄驗證,併發送一封測試郵件。
email_list_controller.rb
def email_test_send
@email = params[:email]
@message = Message.find(params[:id])
@member = Member.find_by_last_name("Bloggs")
MemberMailer.delay.all_member_email(@member.email, @message)
redirect_to messages_path, :notice => "Test Email has been sent."
end
與MemberMailer類定義爲::
class MemberMailer < ActionMailer::Base
default from: "[email protected]"
default cc: "[email protected], [email protected]"
default content_type: "text/html"
# send a message to member
def all_member_email(email, message)
@message = message
mail(:to => email, :subject => message.subject)
end
端
的
控制器通過爲方法啓動發送系統正在使用D elayed_Job Gem後臺處理和發送已經過測試,無論是否有後臺作業處理。
成果
的問題是,沒有消息被髮送和下面通過EmailListController在production.log發生
輸出(與LOG_LEVEL設定在DEBUG
處理#email_test_send as HTML 參數:{「utf8」=>「✓」,「authenticity_token」=>「D5ZCb + Ha63WbPmd47/1/P3rpFJFiSbnrYya +請將您的電子郵件地址發送給我們,我們會盡快給您回覆。您的郵件地址是:「YaSmBic =」,「email」=>「[email protected]」,「commit」=>「Submit」,「id」=>「1」,「method」=>「post」}
否郵件已發送
Google帳戶發送文件夾不顯示任何出站郵件詳細信息。
覈實EC2該服務器可以通過的telnet連接到谷歌的SMTP服務器587個
考察其他StackOverflow的問題,比如Setting up a Gmail Account to work with ActionMailer in Rails 3
沒有坐落在delayed_jobs表的數據庫故障。
因此,卡住了其他地區看看?我已經嘗試重新啓動服務器以確保配置文件等的乾淨加載,但沒有運氣。
感謝您的幫助。 – 2013-11-15 10:41:08