我正在尝试从我的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
)发送示例电子邮件,以确保设置正常吗?
同样在域名部分,我只收到了我的电子邮件。这样可以,还是需要谷歌提供域名?
它不会发送电子邮件
答案 0 :(得分:1)
是
script/console
UserMailer.deliver_welcome_email("myemailaccount@gmail.com")
应该发送电子邮件(如果您的所有设置/代码都正确)。