gpt4 book ai didi

ruby-on-rails - 使用 ActionMailer 和 Outlook/Mandrillapp SMTP 服务器发送邮件

转载 作者:行者123 更新时间:2023-12-04 07:40:03 25 4
gpt4 key购买 nike

我正在使用 ActionMailer在我的应用程序中发送“联系我们”表格的邮件。
我正在使用 Mandrill 应用程序发送电子邮件。这些是我的设置:

配置/环境/development.rb

  config.action_mailer.perform_deliveries = true 
config.action_mailer.raise_delivery_errors = true
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:address => "smtp.mandrillapp.com",
:port => 587,
:enable_starttls_auto => true,
:user_name => 'SMTP username i.e Mandrill a/c username',
:password => 'API key for development',
:domain => 'example.com',
:authentication => 'plain'
}

配置/环境/生产.rb

我已删除该行 config.action_mailer.raise_delivery_errors = true并更改了生产密码 - 这是用于生产的 Mandrill 应用程序 API key 。

app/mailers/contactus_mailer.rb
class ContactusMailer < ActionMailer::Base

default :from => "noreply@example.com"
default :to => "help@example.com"

def new_message(message)
@message = message
mail(:subject => "[WebsiteName] #{message.name + " - " + message.email}")
end

end

上述帐户在自定义域上的有效性 - example.com

上述电子邮件帐户即 noreply@example.com & help@example.com已配置且功能齐全。上述帐户是在 Outlook.com 上设置的,我还仔细检查了我的域 example.com 的 MX 记录,并且我的域的域设置处于事件状态。作为证明,我可以从两个帐户发送/接收电子邮件。

开发和生产环境日志:

当我在两种环境中使用联系我们表单时,ActionMailer 没有报告错误并成功重定向到主页。
Started POST "/contact" for 127.0.0.1 at 2013-08-18 12:35:37 +0530
Processing by MessagesController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"UNgMrA04yk4sIbqtXjlLvLvDINgrBT5eP0wMSRYNgPs=", "message"=>{"name"=>"Dummy name", "email"=>"abc@pqr.com", "content"=>"Random body"}, "commit"=>"Send Message"}
Rendered contactus_mailer/new_message.text.erb (0.5ms)

Sent mail to help@example.com (2679ms)
Date: Sun, 18 Aug 2013 12:35:38 +0530
From: noreply@example.com
To: help@example.com
Message-ID: <52107242dbf6c_12a7f3fd8b1835ad03979@Jatins-MacBook-Pro.local.mail>
Subject: [WebsiteName] Dummy name - abc@pqr.com
Mime-Version: 1.0
Content-Type: text/plain;
charset=UTF-8
Content-Transfer-Encoding: 7bit

Name: Dummy name
Email: abc@pqr.com
Body: Random body

Redirected to http://localhost:3000/
Completed 302 Found in 3841ms (ActiveRecord: 0.0ms)

生产环境的 Mandrill App API 日志:

完整请求:
{
"from_email": null,
"from_name": null,
"async": false,
"key": "API key for production",
"raw_message": "Received: from example.com (unknown [23.20.245.109])\n\t(Authenticated sender: key_production@gmail.com)\n\tby ip-10-31-147-25 (Postfix) with ESMTPSA id 6811A151A064\n\tfor <help@example.com>; Sun, 18 Aug 2013 08:19:11 +0000 (UTC)\nDate: Sun, 18 Aug 2013 08:19:11 +0000\nFrom: noreply@example.com\nTo: help@example.com\nMessage-ID: <5210837f5ce24_26e56b87992f@5c11fd99-5533-4855-af78-40e02c939412.mail>\nSubject: [WebsiteName] Dummy name - abc@pqr.com\nMime-Version: 1.0\nContent-Type: text/plain;\n charset=UTF-8\nContent-Transfer-Encoding: 7bit\n\nName: Dummy name\n\nEmail: abc@pqr.com\n\nBody: Random body",
"to": [
"help@example.com"
]
}

完整回复:
[
{
"email": "help@example.com",
"status": "rejected",
"_id": "9c9f88c588ee4f369437b8dd5d531c8c",
"reject_reason": "soft-bounce"
}
]

开发环境的 Mandrill App API 日志:

开发环境的完整请求。类似于生产环境。然而,在开发中, react 是不同的。
完整回复:
[
{
"email": "help@example.com",
"status": "sent",
"_id": "e67f31f893a84ecdb0ed2438e5741ce1",
"reject_reason": null
}
]

注意:我的帐户没有收到电子邮件 help@example.com在开发和生产环境中。
查询:
  • 为什么我在生产环境中收到拒绝状态和软退回拒绝原因,而对于开发,它表示已发送状态而没有拒绝原因。
  • 为什么我在这两种情况下都没有收到任何邮件?

  • 附言
    最初,我没有使用 Mandrill app并且正在使用 smtp.live.com作为我的 SMTP 服务器以及我的 no reply@example.com凭据,但这没有奏效。
    然后我在谷歌上进行了一些挖掘后转向了 Mandrill。
    如果有人可以帮助设置 Outlook 邮件,那将同样好。这样,根本不需要 Mandrill。

    最佳答案

    无论是否使用 Mandrill,我都可以使用它。直到 7 天后我才收到任何电子邮件,我的收件箱中充斥着我所有的测试电子邮件。

    我的电子邮件帐户的 DNS、TXT 记录似乎有问题,导致了延迟。

    也试过不使用 Mandrill,邮件发送正常。因此,发布 的设置展望 这里。可能对其他人有用。

      config.action_mailer.perform_deliveries = true 
    config.action_mailer.raise_delivery_errors = true
    config.action_mailer.delivery_method = :smtp
    config.action_mailer.smtp_settings = {
    :address => "smtp.live.com",
    :port => 587,
    :enable_starttls_auto => true,
    :user_name => 'noreply@example.com',
    :password => 'password',
    :domain => 'example.com',
    :authentication => 'plain'
    }

    注意:要在生产中使用,请设置 raise_delivery_errors .

    关于ruby-on-rails - 使用 ActionMailer 和 Outlook/Mandrillapp SMTP 服务器发送邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18297248/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com