2013-08-18 21 views
5

ActionMailerを使用して、アプリケーションの「お問い合わせ」フォームにメールを送信しています。私は私のemails.Theseを送信するためのマンドリルのアプリを使用しています
は私の設定です:ActionMailerとOutlook/Mandrillapp SMTPサーバーでメールを送信

設定/環境/ development.rb

config.action_mailer.perform_deliveries = true 
    config.action_mailer.raise_delivery_errors = true 
    config.action_mailer.delivery_method = :smtp 
    config.action_mailer.smtp_settings = { 
    :address    => "smtp.mandrillapp.com", 
    :port     => 587, 
    :enable_starttls_auto => true, 
    :user_name   => 'SMTP username i.e Mandrill a/c username', 
    :password    => 'API key for development', 
    :domain    => 'example.com', 
    :authentication  => 'plain' 
    } 

設定/環境/ production.rb

私はを削除しました
config.action_mailer.raise_delivery_errors = true
と生産のためのパスワードを変更 - 生産のためのMandrillアプリのAPIキーです。

アプリ/メーラー/ contactus_mailer.rb

class ContactusMailer < ActionMailer::Base 

    default :from => "[email protected]" 
    default :to => "[email protected]" 

    def new_message(message) 
    @message = message 
    mail(:subject => "[WebsiteName] #{message.name + " - " + message.email}") 
    end 

end 

カスタムドメインで上記のアカウントの妥当性 - example.com

上記の電子メールアカウントは完全に[email protected] & [email protected]がプロビジョニングされているIEと機能的。上記のアカウントはOutlook.comで設定されており、ドメインexample.comのMXレコードを再確認し、ドメイン設定は自分のドメインでアクティブになっています。証拠として、私は両方のアカウントの電子メールをアカウントから送受信できます。

開発・生産環境のログ:

私は両方の環境でお問い合わせフォームを使用し、actionmailerのがエラーを報告していないし、ホームページに正常にリダイレクトされます。

Started POST "/contact" for 127.0.0.1 at 2013-08-18 12:35:37 +0530 
Processing by MessagesController#create as HTML 
    Parameters: {"utf8"=>"✓", "authenticity_token"=>"UNgMrA04yk4sIbqtXjlLvLvDINgrBT5eP0wMSRYNgPs=", "message"=>{"name"=>"Dummy name", "email"=>"[email protected]", "content"=>"Random body"}, "commit"=>"Send Message"} 
    Rendered contactus_mailer/new_message.text.erb (0.5ms) 

Sent mail to [email protected] (2679ms) 
Date: Sun, 18 Aug 2013 12:35:38 +0530 
From: [email protected] 
To: [email protected] 
Message-ID: <[email protected]l> 
Subject: [WebsiteName] Dummy name - [email protected] 
Mime-Version: 1.0 
Content-Type: text/plain; 
charset=UTF-8 
Content-Transfer-Encoding: 7bit 

Name: Dummy name  
Email: [email protected] 
Body: Random body 

Redirected to http://localhost:3000/ 
Completed 302 Found in 3841ms (ActiveRecord: 0.0ms) 

本番環境用マンドリルのApp APIログ:

全要求:

{ 
    "from_email": null, 
    "from_name": null, 
    "async": false, 
    "key": "API key for production", 
    "raw_message": "Received: from example.com (unknown [23.20.245.109])\n\t(Authenticated sender: [email protected])\n\tby ip-10-31-147-25 (Postfix) with ESMTPSA id 6811A151A064\n\tfor <[email protected]>; Sun, 18 Aug 2013 08:19:11 +0000 (UTC)\nDate: Sun, 18 Aug 2013 08:19:11 +0000\nFrom: [email protected]\nTo: [email protected]\nMessage-ID: <[email protected]mail>\nSubject: [WebsiteName] Dummy name - [email protected]\nMime-Version: 1.0\nContent-Type: text/plain;\n charset=UTF-8\nContent-Transfer-Encoding: 7bit\n\nName: Dummy name\n\nEmail: [email protected]\n\nBody: Random body", 
    "to": [ 
     "[email protected]" 
    ] 
} 

全応答:開発環境の

[ 
    { 
     "email": "[email protected]", 
     "status": "rejected", 
     "_id": "9c9f88c588ee4f369437b8dd5d531c8c", 
     "reject_reason": "soft-bounce" 
    } 
] 

マンドリルのApp APIログ:

完全な開発要求env。プロダクション環境に似ています。しかし、開発段階では対応が異なります。
完全な応答:

[ 
    { 
     "email": "[email protected]", 
     "status": "sent", 
     "_id": "e67f31f893a84ecdb0ed2438e5741ce1", 
     "reject_reason": null 
    } 
] 

注:は、私は両方の開発環境と本番環境で自分のアカウント[email protected]に電子メールを受信して​​いないのです。
クエリ:。私は、ステータス、ソフトバウンスは、生産ENVの理由を拒否拒否取得していますなぜ、開発のためにそれが送信される状態と何が理由を拒否していないと言うのに対し、

  1. どちらの場合でもメールが届かないのはなぜですか?

P.S.
当初はMandrill appを使用していませんでしたが、no [email protected]の資格情報とともに、smtp.live.comをSMTPサーバーとして使用していましたが、それはうまくいかなかった。 その後、私はGoogleでいくつかの掘り下げの後、Mandrillに切り替えました。
誰かがOutlookのメール設定を手助けすることができれば、同様に良いでしょう。そうすれば、マンドリルはまったく必要ないでしょう。

答えて

2

私はそれをマンドリルの有無にかかわらず動作させました。私は7日後までメールを受け取らなかったので、私の受信箱にはすべてのテストメールがあふれていた。

私の電子メールアカウントのDNS、TXTレコードに不具合があり、遅延が発生しているようです。

マンドリルなしでも試してみると、メールが正しく送信されています。したがって、Outlookの設定をここに投稿してください。誰かのために便利かもしれない。

config.action_mailer.perform_deliveries = true 
    config.action_mailer.raise_delivery_errors = true 
    config.action_mailer.delivery_method = :smtp 
    config.action_mailer.smtp_settings = { 
    :address    => "smtp.live.com", 
    :port     => 587, 
    :enable_starttls_auto => true, 
    :user_name   => '[email protected]', 
    :password    => 'password', 
    :domain    => 'example.com', 
    :authentication  => 'plain' 
} 

注:本番で使用するためには、raise_delivery_errorsを設定します。

+0

この正確な設定を使用していますが、SSLエラーが発生しています。あなたはSSL証明書を持っていましたか?あなたのドメインのために? –

+0

@TommyAdey:いいえ。私はSSL証明書を持っていませんでした。あなたはもう少しあなたの問題を説明してください。 –

+0

私はOpenSSL :: SSLError - SSL_read:バージョン番号が間違っていると言っています。私は今数日間試してきましたが、まだ動作していません。私も試した:openssl_verify_mode => 'none'。 –

3

あなたがapplication.rbまたはproduction.rbで定義されて

config.action_mailer.default_url_options = { 
    :host => 'YOUR_HOST_NAME_HERE' 
    } 

を持っていますか?それはあなたのドメイン名に設定する必要があります。いくつかのサーバーは、明示的に定義されたホスト名なしでメールを拒否することがわかっています。

+0

ありがとうございましたが、メールの遅延の原因となったTXTレコードに一時的な問題がありました。 –

関連する問題