📜  rails 从控制台发送电子邮件 - Ruby (1)

📅  最后修改于: 2023-12-03 15:04:47.182000             🧑  作者: Mango

Rails 从控制台发送电子邮件 - Ruby

在Rails应用程序中,发送电子邮件是一项很常见的任务,而且也很容易实现。但是,在某些情况下,您希望能够从终端发送电子邮件并在开发过程中进行调试。你会发现这是非常有用的,特别是在你需要发送测试邮件、修改模板或查看SMTP错误的情况下。 在这篇文章中,我们将从控制台发送电子邮件,来讲解如何使用Rails发送电子邮件。

步骤

1.配置开发环境

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_namepassword 为你的Gmail账号和密码,如果你使用的是其他邮件服务,可以将上述代码中的地址和端口号等信息更改为你所使用的邮件服务器信息。

2.创建Mailer和View文件

在命令行终端中输入下列命令,创建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>

3.运行控制台

在命令行终端中,运行 rails console 命令,进入Rails console。

4.发送电子邮件

要发送电子邮件,请运行以下命令:

TestMailer.test_email.deliver_now

这将会向收件人 recipient@example.com 发送一封主题为 This is a test email 的电子邮件。

结论

使用上述步骤,您可以通过控制台轻松地发送电子邮件并进行调试。这是在开发过程中非常有用的功能,同时也有助于对电子邮件的调试和测试。