通过Gmail发送电子邮件,但配置不同的电子邮件地址

我正在尝试使用GMail的smtp服务器从我的rails应用程序发送电子邮件。

我发送的电子邮件看起来像是从我自己的Gmail地址发送的,而我希望它们来自info@myapp.com。

我使用三种方式身份validation配置了这个东西,我的应用程序有它唯一的密码。 这是我的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 

可能吗? 我怎么能这样做?

我想出了我的解决方案,

我的应用程序中有两个邮件控制器,一个来自设计并发送用户注册相关内容的邮件,另一个通过联系人页面向我发送电子邮件。

首先让我们看看谷歌的配置。 Google允许使用不同的发件人电子邮件发送电子邮件,但它要求您拥有邮件地址,因此需要遵循一个程序来validation您在Google上的电子邮件地址。 它列在这里

我使用该程序validation我的电子邮件地址: no_reply@myapp.com这是我希望我的电子邮件看起来from哪一个

一旦gmail确认您拥有我配置设计的发件人电子邮件地址,我就在config/initializers/devise.rb添加了以下行:

 config.mailer_sender = "'myapp_noreply' " 

其次,我通过添加以下行来配置我的app/mailers/notifications_mailer

 default :from => "no_reply@myapp.com" 

我测试了一切,它工作正常。 如果我签入电子邮件的标题,我仍然可以看到我的Gmail帐户出现。 这些看起来像这样:

 Return-Path:  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  (version=TLSv1.1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Tue, 01 Apr 2014 05:20:26 -0700 (PDT) Sender: Giulio  Date: Tue, 01 Apr 2014 12:20:25 +0000 From: 'myapp_noreply'  Reply-To: 'myapp_noreply'  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字段设置为我需要的字段,所以对其余部分我并不在意。