我在网站上有一个简单的联系表格。
有一个电子邮件帐户只是为了处理通过联系表单发送的邮件。这是'mycompany.noreply@gmail.com'
当用户填写表单并发送时,会发送两封电子邮件。向网站用户发送一封确认电子邮件,并将实际填写的表格发送给公司。
公司希望如此,当他们收到用户的电子邮件时,他们会回复并且用户的电子邮件地址会自动显示在“收件人”字段中。但是当他们这样做时,他们看到的是“发件人姓名'mycompany.noreply@gmail.com'”而不是“发件人姓名'sender_email_address'”。
class Notifications < ActionMailer::Base
def enquiry(user)
@user = user
mail(to: "employee@mycompany.com", subject: "website enquiry", from: "#{@user.name} <#{@user.email}>")
end
def no_reply(user)
@user = user
mail(to: @user.email, from: "My Company <mycompany.noreply@gmail.com>", subject: "Message received at mycompany.com")
end
end
from字段的测试通过。
require "spec_helper"
describe Notifications do
let(:contact_form) { FactoryGirl.build(:contact_form) }
context "enquiry" do
let(:mail) { Notifications.enquiry(contact_form) }
it "renders the headers" do
mail.from.should eq([contact_form.email])
end
end
end
另外,我正在使用mailcatcher。
Mailcatcher还会在from字段中显示正确的user.email
。
似乎只是在收到实际电子邮件时(使用gmail)显示错误的地址。
任何帮助表示感谢。
默认邮件设置:
# mail config settings
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:user_name => 'mycompany.noreply@gmail.com',
:password => 'password',
:authentication => 'plain',
:enable_starttls_auto => true }
来自mailcatcher的邮件标题
Date: Sat, 13 Oct 2012 21:08:02 +0100
From: Joe Bloggs <joebloggs@gmail.com>
To: mycomany.noreply@gamil.com
Message-ID: <5079ca229969b_67c23fc061434ed023056@Mark-Charless-iMac-2.local.mail>
Subject: website enquiry
Mime-Version: 1.0
Content-Type: multipart/alternative;
boundary="--==_mimepart_5079ca226fb17_67c23fc061434ed02277b";
charset=UTF-8
Content-Transfer-Encoding: 7bit
----==_mimepart_5079ca226fb17_67c23fc061434ed02277b
Date: Sat, 13 Oct 2012 21:08:02 +0100
Mime-Version: 1.0
Content-Type: text/plain;
charset=UTF-8
Content-Transfer-Encoding: 7bit
Content-ID: <5079ca227ec80_67c23fc061434ed02288a@Mark-Charless-iMac-2.local.mail>
答案 0 :(得分:2)
问题是您使用的是Gmail SMTP服务器。
根据此问题:Rails and Gmail SMTP, how to use a custom from address,您无法设置自定义发件人地址,除非该帐户已链接到您的Gmail帐户。
备选方案:
mailto
链接,并确保他们不会不回复自动发送的电子邮件,但在电子邮件中使用此按钮。答案 1 :(得分:0)
Gmail不允许使用名称欺骗。因为它不会使用默认值:但它将使用SMTP用户名。