要使用Action Mailer发送电子邮件,您需要按照以下步骤进行设置:
config/environments
目录中的每个环境文件(如development.rb
、production.rb
)中,添加以下配置:config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
address: 'smtp.example.com',
port: 587,
domain: 'example.com',
user_name: 'your_username',
password: 'your_password',
authentication: 'plain',
enable_starttls_auto: true
}
请确保将这些设置替换为您的实际SMTP服务器设置。
app/mailers
目录中,创建一个新的类文件,例如user_mailer.rb
,并添加以下代码:class UserMailer < ActionMailer::Base
default from: 'notifications@example.com'
def send_message(user)
@user = user
mail(to: @user.email, subject: 'New Message')
end
end
在上面的示例中,我们创建了一个名为send_message
的方法,该方法接受一个用户对象作为参数,并发送一封包含“New Message”主题的邮件给用户。
app/views/user_mailer
目录中,创建一个名为send_message.html.erb
的邮件视图文件,并添加您想要在邮件中包含的内容。例如:Hello <%= @user.name %>!
You have a new message.
UserMailer.send_message(user).deliver_now
方法来触发邮件发送。例如:class UsersController < ApplicationController
def send_email
user = User.find(params[:id])
UserMailer.send_message(user).deliver_now
redirect_to root_path, notice: 'Email sent successfully!'
end
end
在上面的示例中,我们在一个名为send_email
的动作中查找用户并发送邮件。最后,我们将用户重定向到根路径并显示一个成功的通知。
这就是使用Action Mailer向用户发送电子邮件的基本步骤。您可以根据实际需求自定义邮件内容和发送逻辑。