0

我在网站上有一个简单的联系表。

有一个电子邮件帐户仅用于处理通过联系表发送的邮件。这是“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.emailfrom 字段中显示正确。

似乎只有在收到实际电子邮件(使用 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>
4

2 回答 2

2

问题是您使用的是 Gmail SMTP 服务器。

根据这个问题:Rails and Gmail SMTP, how to use a custom from address,除非该帐户链接到您的 gmail 帐户,否则您无法设置自定义 From 地址。

备择方案:

  1. 使用另一个允许您设置自己的发件人地址的 SMTP 服务器。
  2. 创建一个漂亮的基于 HTML 的电子邮件,发送到 employee@mycompany.com 并带有一个大按钮,该按钮是mailto填写表格的用户的电子邮件地址的链接,并确保他们不回复自动电子邮件,但在电子邮件中使用此按钮。
于 2012-10-13T20:31:50.823 回答
0

Gmail 不允许名称欺骗。因为它不会使用默认的 from: 但它会使用 SMTP 用户名。

于 2017-06-23T16:01:34.070 回答