ruby on rails 从localhost发送电子邮件




ruby-on-rails email (4)

我正在尝试了解有关电子邮件的信息。 我在localhost上开发一些东西。 是否可以从localhost发送电子邮件来说出像gmail这样的普通邮件帐户? 我有安装邮件服务器吗? 我刚刚开发了标准导轨安装。


Answer #1

您可以在config / environment.rb中使用类似的东西设置ActionMailer以使用Gmail的SMTP服务器:

ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.server_settings = {
    :address        => 'smtp.gmail.com',
    :domain         => '<your domain>',
    :port           => 587,
    :user_name      => '<your gmail>',
    :password       => '<your password>',
    :authentication => :plain
}

编辑 :如果遇到任何困难,请将配置设置为显示错误:

ActionMailer::Base.raise_delivery_errors = true

Answer #2

rails 4.0的更新
现在您需要这些代码才能使其工作:

# I recommend using this line to show error
config.action_mailer.raise_delivery_errors = true

ActionMailer::Base.smtp_settings = {
  :address        => 'smtp.gmail.com',
  :domain         => 'mail.google.com',
  :port           => 587,
  :user_name      => '[email protected]',
  :password       => '******',
  :authentication => :plain,
  :enable_starttls_auto => true
}

Answer #3

如果我理解您的情况,您希望使用自定义电子邮件地址(如[email protected])从本地计算机发送电子邮件。 如果您已经为您的电子邮件帐户(mycompany.com)注册了域名,那么托管您网站的公司很可能也拥有POP / SMTP服务器。 如果是这样,您可以使用Mikael S的示例并将地址参数更改为您的托管公司的smtp地址,并使用您的托管公司的用户名/密码。

如果您尚未注册自定义域或没有托管服务提供商,则可以在本地计算机上安装免费的电子邮件服务器。 如果您使用WindowsXP,则可以通过添加/删除程序 - > Windows功能来添加IIS电子邮件服务器。 如果您使用的是Linux,则可以使用存储库中提供的任何电子邮件服务器。 安装本地电子邮件服务器后,您将使用Mikael S的示例代码,并在地址字段中使用127.0.0.1或localhost。 如果您使用的是WindowsXP的电子邮件服务器,我认为您不必输入用户名/密码。

希望它能帮到你。


Answer #4

看看api.rubyonrails.org/classes/ActionMailer/Base.html 。 在RAILS_ROOT/config/environment/ ,有一个用于不同环境(开发,测试,生产)的文件可配置设置放在这些文件中

你像这样指定delivery_method,

ActionMailer::Base.delivery_method = :sendmail

或者如果你想

ActionMailer::Base.delivery_method = :smtp

Mikael S发布了一个详细的设置示例

HTH





localhost