Macでactionmailerの問題をレール
-
20-09-2019 - |
質問
私は最後の数日のRailsを使用することを学ぶに取り組んできたと私はグーグルで解決することができていない何かに実行しました。
だから、僕は、電子メールを送信し、基本的な連絡先フォームを作成しています。すべてがテストでOK動作しているようだ、フォームが動作していることを私に語った、とactionmailerのはしかし、私はactionmailerのを設定するトラブルを抱えている、正しく実装されました。私はOSX 10.6.2を実行していますよ。私は、postfixのを実行しているし、それがtelnet localhost 25
を使用して実行していることを確認しました。私は私が手の形を使用しようとすると、「接続が拒否されました」エラーます。
これは私の現在の設定です:
config.action_mailer.smtp_settings = {
:address => 'localhost',
:port => 25
}
私は:domain
を設定する必要があるかもしれないと思ったが、私は一種の混乱しているが、このような状況にに設定する必要がありますどのようにしています。
解決
私の人生はおよそ100倍簡単に実行されている:私のMac上で配信方法としての私のMac上のsendmailではなく:SMTP、あなたがいることに打撃を与えるしようとする場合があります。この回答では、私はあなたがちょうどあなたのMacでメール配信を希望し、実際にそれがどのように動作するか気にしないと仮定しています。
私はプロジェクトのネットのすべての時間に接続するつもりならば、私は、やる他の事は、私の地元のマックではなくGmailを経由する私の発信actionmailerの発信メールを設定することです。
ActionMailer::Base.delivery_method = :smtp ActionMailer::Base.smtp_settings = { :enable_starttls_auto => true, :address => "smtp.gmail.com", :port => 587, :domain => "example.com", :authentication => :plain, :user_name => "address@example.com", :password => "secret" }
これは、ドメインのGoogleアプリに設定されているカスタムドメインと呼ばれるexample.comのです。また、単にGmailアカウントを作成し、そこを通じて物事を送信することができます。 (gmail.comにexample.comのすべてのインスタンスを変更することにより)
他のヒント
あなたはPostfixデーモンを起動する必要があります。あなたは、端末に入力して、ポートが開いている場合伝えることができます。
telnet localhost 25
25ポートに接続しようとします。それは文句を言わないのpostfixイマイチが実行されている場合には、接続を停止するCTL-]ヒットしなければ、接続してTelnetを終了するには「終了しました」。
それは接続しない場合、あなたはPostfixデーモンを起動する必要があります:
sudo launchctl start org.postfix.master
と、その後のtelnetで接続してみてください。それが接続する必要があります。今すぐあなたのactionmailerのクラスからメールを送信する準備が整いました。
sudo launchctl stop org.postfix.master
Postfixデーモンを停止します
私は<のhref = "http://www.esmejia.com/posts/20-send-real-mail-with-rails-from-your-development-environment-on-mac-os-x" 続きますrelが=「nofollowを」>このガイドとすべてが正常に動作します。主:
sudo postfix start
そして
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:address => "localhost",
:port => 25
}
あなたはこれがIPv4からIPv6対事や、あなたのリゾルバの問題であるかどうかを確認するには「localhost」のために「127.0.0.1」を置き換えた場合、それは動作しますか?
自分のウェブサイトからの引用:
MailCatcherは、Webインターフェイスで表示することに送信されたすべてのメッセージをキャッチし、超シンプルなSMTPサーバーを実行します。実行mailcatcher、これまでに到着したのメールを見て、その後、代わりにあなたのデフォルトのSMTPサーバの
smtp://localhost:1025
http://localhost:1080
をチェックアウトするために提供するために、お気に入りのアプリを設定します。
これは、すべての受信者にメールを傍受し、それゆえ一箇所ですべてのメールをチェックすることが本当に簡単になります。