как отправить письмо из приложения rails с адресом Gmail - PullRequest
2 голосов
/ 28 июля 2010

Я пытаюсь отправить образец электронного письма из моего приложения на рельсы.

это то, что я сделал до сих пор:

rails gmailtest 
cd gmailtest
script/plugin install git://github.com/collectiveidea/action_mailer_optional_tls.git

Затем я поместил следующее в мой environment.rb файл (после end)

ActionMailer::Base.smtp_settings = {
  :address        => "smtp.gmail.com",
  :port           => 587,
  :domain         => "mygmail@gmail.com",
  :user_name      => "mygmail@gmail.com",
  :password       => "mypwd",
  :authentication => :plain
}


script/generate mailer UserMailer

Затем помещается следующее в models\UserMailer:

class UserMailer < ActionMailer::Base
 def welcome_email(email)
    recipients    email
    from          "My Awesome Site Notifications <notifications@example.com>"
    subject       "Welcome to My Awesome Site"
    sent_on       Time.now
    #body          {:user => "", :url => "http://example.com/login"}
  end  
end 

Размещено в views\user_mailer\welcome_email.text.html.erb

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
  </head>
  <body>
    <h1>Welcome to example.com, </h1>
    <p>
      You have successfully signed up to example.com, and your username is:.<br/>
      To login to the site, just follow this link:.
    </p>
    <p>Thanks for joining and have a great day!</p>
  </body>
</html>

Попытка отправки электронной почты!

>> UserMailer.deliver_welcome_email("myemailaccount@gmail.com")
=> #<TMail::Mail port=#<TMail::StringPort:id=0x4bf7c42> bodyport=#<TMail::StringPort:id=0x4bd4c1a>>

Теперь я не знаю, работает ли установка или нет ?? можно отправить образец электронного письма из командной строки (script/console), чтобы убедиться, что установка работает?

Также в разделе домена у меня просто есть мой адрес электронной почты. Это нормально, или мне нужен домен от Google?

Не отправляется электронное письмо

1 Ответ

1 голос
/ 28 июля 2010

Да.

script/console
UserMailer.deliver_welcome_email("myemailaccount@gmail.com")

Следует отправить электронное письмо (если все ваши настройки / код верны).

...