我在网站上有一个简单的联系表。
有一个电子邮件帐户仅用于处理通过联系表发送的邮件。这是“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
测试
来自字段的测试通过。
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 还在user.email
from 字段中显示正确。
似乎只有在收到实际电子邮件(使用 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>