如何使用gmail地址从rails app发送电子邮件

时间:2010-07-28 04:09:32

标签: ruby-on-rails smtp gmail

我正在尝试从我的rails应用程序发送示例电子邮件。

这是我到目前为止所做的:

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)发送示例电子邮件,以确保设置正常吗?

同样在域名部分,我只收到了我的电子邮件。这样可以,还是需要谷歌提供域名?

它不会发送电子邮件

1 个答案:

答案 0 :(得分:1)

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

应该发送电子邮件(如果您的所有设置/代码都正确)。