我正在尝试使用GMail的smtp服务器从我的rails应用程序发送电子邮件。
我发送的电子邮件看起来像是从我自己的Gmail地址发送的,而我希望它们来自info@myapp.com。
我使用三种身份验证方式配置了这个东西,我的应用程序已经获得了它唯一的密码。这是我的production.rb
config.action_mailer.default_url_options = {
host: 'my ip',
protocol: 'https'
}
config.action_mailer.delivery_method = :smtp
config.action_mailer.asset_host = "https://my ip"
这是我的initializers/smtp.rb
MyApp::Application.configure do
config.action_mailer.smtp_settings = {
enable_starttls_auto: "true",
address: "smtp.gmail.com",
port: "587",
domain: "mydomain.com",
authentication: :plain,
user_name: 'myusername@gmail.com',
password: 'mypassword'
}
end
有可能吗?我怎么能这样做?
答案 0 :(得分:1)
我想出了我的解决方案,
我的应用程序中有两个邮件控制器,一个来自设计并发送用户注册相关内容的邮件,另一个通过联系人页面向我发送电子邮件。
首先让我们看一下google中的配置。 Google允许使用不同的发件人电子邮件发送电子邮件,但它要求您拥有邮件地址,因此需要遵循一个程序来验证您在Google上的电子邮件地址。它已列出here
我使用该程序验证了我的电子邮件地址:no_reply@myapp.com
我希望我的电子邮件显示为from
一旦gmail验证您拥有我配置设计的发件人电子邮件地址,我就更改了config/initializers/devise.rb
添加了一行:
config.mailer_sender = "'myapp_noreply' <no_reply@myapp.com>"
第二,我通过添加以下行来配置我的app/mailers/notifications_mailer
:
default :from => "no_reply@myapp.com"
我测试了一切,它运行良好。如果我签入电子邮件的标题,我仍然可以看到我的Gmail帐户出现。这些看起来像这样:
Return-Path: <mygmail@gmail.com>
Received: from myapp.com ([2231:7120::f12c:912f:f12e:5123])
by mx.google.com with ESMTPSA id gn1sm32851027wib.14.2014.04.01.05.20.26
for <info@casamaroma.it>
(version=TLSv1.1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
Tue, 01 Apr 2014 05:20:26 -0700 (PDT)
Sender: Giulio <mygmail@gmail.com>
Date: Tue, 01 Apr 2014 12:20:25 +0000
From: 'myapp_noreply' <no_reply@myapp.com>
Reply-To: 'myapp_noreply' <no_reply@myapp.com>
To: destination@email.com
Message-ID: <533aaf09c5237_2b0b123fe8c3341a@server.mail>
Subject: Confirmation instructions
Mime-Version: 1.0
Content-Type: text/html;
charset=UTF-8
Content-Transfer-Encoding: 7bit
因为from
字段设置为我需要的字段,所以我不会太在乎其他字段。