美好的一天伙计们,我在调试这个问题时遇到了麻烦,并且花了很多时间我需要你的帮助和解释,说明它为什么不起作用。
我已经做过的事情: 1.添加了gem' binding_of_caller' 2.bundle install
的目标: 当访问者提交联系表格时,它应该自动向我发送电子邮件。
我的困境/困惑:
1.如何在secrets.yml中设置电子邮件,或者将您的电子邮件直接配置到您的电子邮件中 我做了什么 至:myemail.com> secretts.yml在生产和发展中 我说得对吗?
请向我解释一下,因为我正在深入研究铁轨上的红宝石。
答案 0 :(得分:0)
您需要先生成邮件程序。
rails g mailer example_mailer
app / mailers / example_mailer.rb此文件将由此行生成。
然后,您需要在邮件程序中创建一个方法,您可以在其中定义发送邮件的人员。您可以提供直接的电子邮件ID,也可以从数据库中获取。在我给出的示例中,您需要将用户传递给此方法,并且它将向该用户的电子邮件发送电子邮件。
def sample_email(user)
@user = user
mail(to: @user.email, subject: 'Sample Email')
end
为邮件的外观创建HTML模板
应用程序/视图/ example_mailer / sample_email.html.erb
<!DOCTYPE html>
<html>
<head>
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type' />
</head>
<body>
<h1>Hi <%= @user.name %></h1>
<p>
Sample mail sent using smtp.
</p>
</body>
</html>
然后,无论您使用哪种环境,都需要在/config/environments/production.rb或/config/environments/development.rb中配置smtp。
config.action_mailer.delivery_method = :smtp
# SMTP settings for gmail
config.action_mailer.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:user_name => 'username@gmail.com',
:password => 'Gmail password',
:authentication => "plain",
:enable_starttls_auto => true
}
然后,您需要从发送邮件的任何方法触发邮件操作。
ExampleMailer.sample_email(@user).deliver