現在、sendgrid を介してメールを送信する作業を行っており、現在、新しいユーザーにメールを送信しています。...しかし奇妙なことに、非常によく似た電子メール オプションが機能しません。受信者を含む完全な電子メールがログに表示されますが、受信されません。
ここに私が持っているものがあります:
初期化子の mail.rb ファイル:
ActionMailer::Base.smtp_settings = {
:address => 'smtp.sendgrid.net',
:port => '587',
:authentication => :plain,
:user_name => configatron.sendgrid.username,
:password => configatron.sendgrid.password,
:domain => 'heroku.com'
}
ActionMailer::Base.delivery_method = :smtp
ユーザー名とパスワードが別の場所で定義されている場合 - それらは正しい値であることが確認されています
新しいユーザーが登録したら、UserMailer クラスを呼び出して次のことを行います。
def welcome_email(user)
@email = user.email
@name = user.full_name
mail(to: @email, subject: "Welcome!")
end
そして、ワーカーは次のようにするだけでそれを呼び出します。
UserMailer.welcome_email(user).deliver
これでうまくいきます。私はメールを受け取り、それだけです。
しかし、別の方法でメールを送信しようとすると、魔法のようにうまくいきません。
同じ UserMailer クラスで:
def request(org, recipient, item)
@org = org
@recipient = recipient
@item = item
mail(to: @org.email, subject: "A new request has been posted!")
end
SAME 関数を使用する (ただし、今回はワーカーの外にあるため、簡単にデバッグできます):
UserMailer.request(org, recipient, item).deliver
電子メールは端末に完全に表示されます。
Sent mail to mypersonalemail@test.com (4717ms)
Date: Mon, 31 Dec 2012 01:03:35 -0800
From: mysendingemail@test.com
To: mypersonalemail@test.com
Message-ID: <[longhexstring]@localhost.localdomain.mail>
Subject: A new request has been posted!
Mime-Version: 1.0
Content-Type: multipart/alternative;
boundary="--==_mimepart_50e154e769903_3c41bba7ec576d5";
charset=UTF-8
Content-Transfer-Encoding: 7bit
----==_mimepart_50e154e769903_3c41bba7ec576d5
Date: Mon, 31 Dec 2012 01:03:35 -0800
Mime-Version: 1.0
Content-Type: text/plain;
charset=UTF-8
Content-Transfer-Encoding: 7bit
Content-ID: <[longhex]@localhost.localdomain.mail>
Hello world!
----==_mimepart_50e154e769903_3c41bba7ec576d5
Date: Mon, 31 Dec 2012 01:03:35 -0800
Mime-Version: 1.0
Content-Type: text/html;
charset=UTF-8
Content-Transfer-Encoding: 7bit
Content-ID: <[longhex]@localhost.localdomain.
<!DOCTYPE html>
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
</head>
<body>
<p>
Hello world!
</p>
</body>
</html>
しかし、私は自分の個人的な電子メール、ジャンク、ゴミ箱の受信トレイを確認しましたが、何も受信しませんでした. sendgrid でさえ、リクエスト メールの送信をリクエストしたログはありません。しかし、ウェルカム メールは問題なく機能しており、sendgrid を介してログに記録されています。あるグループの電子メールが送信され、別のグループが送信されない原因がわかりません。これは本当に困惑しています。構文に明らかな誤りはなく、使用する値は正しいデータ型であり、nil ではありません。
この奇妙な問題の助けをいただければ幸いです。