1

サーバーは、電子メールが正しいアドレスに送信されたと述べていますが、受信ボックスにメッセージが表示されません。

私のSetup_mail.rbファイル

ActionMailer::Base.smtp_settings ={
  :address          => "smtp.gmail.com",
  :port         => 587,
  :domain           => "gmail.com",
  :user_name        => "my_user_name@gmail.com",
  :password         => "my_password",
  :authentication       => "Plain",
  :enable_starttls_auto => true
}

私のdevelopment.rbファイルは:

# Don't care if the mailer can't send
config.action_mailer.raise_delivery_errors = true
config.action_mailer.perform_deliveries = true #default value
config.action_mailer.delivery_method = :smtp #default value

私のtest.rbファイルは:

config.action_mailer.delivery_method = :smtp

私は複数のバリエーションを試しましたが、迷子になりました。私はWindows7マシンで実行しています。Ruby1.8.7とRails3.0.7を実行しています

誰か助けてもらえますか?

これが私のcreateメソッドです:

def create
 @user = User.new(params[:user])
 if @user.save
   UserMailer.registration_confirmation(@user).deliver
   sign_in @user
   redirect_to @user, :flash => { :success => "Welcome to the Sample App!" }
 else
   @title = "Sign up"
   render 'new'
 end
end

私のuser_mailer.rbクラスUserMailer<ActionMailer:: Base

default :from => "my_user_name@gmail.com"

def registration_confirmation(user)
mail(:to => user.email, :subject => "Thanks for registering")

end
end
4

5 に答える 5

5

サーバーを見てください。ログで、実際にメールを送信しようとしていることがわかると確信しています。

問題は、GoogleがローカルIPアドレスを信頼せず、メールが(スパムディレクトリにさえも)配信されないことです。これを回避する方法はありませんが、ホワイトリストに登録されたサーバーを使用します。

アプリを本番環境で試してみると、これは通常は機能するはずです。たとえば、アプリをherokuにデプロイしてテストします。

于 2011-06-14T17:28:24.667 に答える
2

.deliver最後に入れてみてください。これでこの問題は修正されました。

mail(:to .....).deliver!
于 2013-12-23T06:12:01.480 に答える
0

認証を文字列から記号に変更してみてください。

ActionMailer::Base.smtp_settings ={
  :address              => "smtp.gmail.com",
  :port                 => 587,
  :domain               => "gmail.com",
  :user_name            => "my_user_name@gmail.com",
  :password             => "my_password",
  :authentication       => :plain,
  :enable_starttls_auto => true
}
于 2011-06-14T16:55:05.177 に答える
0

my_user_name@gmail.comが実際にメールを送信したことを確認する必要があります。これまで、GmailのSMTPサーバーを介して確認メールを送信するときに問題が発生しました。これは、一括送信するとまったく送信されなくなるためです。

my_user_name@gmail.comにログインして、問題がないことと、メールが送信されていることを確認することをお勧めします。

そうでない場合は、SendGridなどのサービスを試して送信メールを送信することをお勧めします。

于 2011-06-14T17:19:46.870 に答える
0

これと同じ問題が発生しました。コンソールメールが送信されたのに受信トレイに何も表示されなかったことがわかりました。1つは、アプリをherokuなどのホワイトリストに登録されたサーバーにデプロイできること、またはテスト目的でのみ表示したい場合です。ローカル経由でブラウザで安全性の低いアプリを有効にすると、受信トレイ https://myaccount.google.com/lesssecureappsでそのメールを確認できるはずです。

于 2019-02-03T15:18:46.803 に答える