📅  最后修改于: 2023-12-03 15:04:47.182000             🧑  作者: Mango
在Rails应用程序中,发送电子邮件是一项很常见的任务,而且也很容易实现。但是,在某些情况下,您希望能够从终端发送电子邮件并在开发过程中进行调试。你会发现这是非常有用的,特别是在你需要发送测试邮件、修改模板或查看SMTP错误的情况下。 在这篇文章中,我们将从控制台发送电子邮件,来讲解如何使用Rails发送电子邮件。
在 config/environments/development.rb
文件中,输入以下代码
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
address: 'smtp.gmail.com',
port: 587,
user_name: 'YourGmailUsername',
password: 'YourGmailPassword',
authentication: 'plain',
enable_starttls_auto: true }
其中的 user_name
和 password
为你的Gmail账号和密码,如果你使用的是其他邮件服务,可以将上述代码中的地址和端口号等信息更改为你所使用的邮件服务器信息。
在命令行终端中输入下列命令,创建Mailer和View文件。
rails generate mailer TestMailer test_email
这将在 app/mailers
目录下生成一个名为 test_mailer.rb
的文件和一个名为 test_email.html.erb
的文件。在 test_mailer.rb
文件中,在 test_email
方法中定义邮件的主题、收件人,以及邮件内容。在 test_email.html.erb
文件中,你可以用类似HTML的方式来创建邮件的内容。
class TestMailer < ApplicationMailer
default from: 'Your Name <your-email@example.com>'
def test_email
@subject = "This is a test email"
@recipient = "recipient@example.com"
mail(to: @recipient, subject: @subject)
end
end
例如,要向收件人发送简单的邮件,请像下面这样编写模板文件:
<!DOCTYPE html>
<html>
<head>
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>
</head>
<body>
<h1>Hello World!</h1>
</body>
</html>
在命令行终端中,运行 rails console
命令,进入Rails console。
要发送电子邮件,请运行以下命令:
TestMailer.test_email.deliver_now
这将会向收件人 recipient@example.com
发送一封主题为 This is a test email
的电子邮件。
使用上述步骤,您可以通过控制台轻松地发送电子邮件并进行调试。这是在开发过程中非常有用的功能,同时也有助于对电子邮件的调试和测试。