サイトに簡単な連絡先フォームがあります。
お問い合わせフォームから送信されるメールを処理するためだけのメール アカウントがあります。これは「mycompany.noreply@gmail.com」です
問題
ユーザーがフォームに入力して送信すると、2 つのメールが送信されます。サイトのユーザーへの 1 つの確認メールと、会社への実際に記入されたフォーム。
会社はそれを望んでいるので、ユーザーからメールを受け取ったときに返信を押すと、ユーザーのメールアドレスが自動的に「宛先」フィールドに入力されます。しかし、現時点では、「送信者名 'sender_email_address'」ではなく「送信者名 'mycompany.noreply@gmail.com'」と表示されます。
コード
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 は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 }
メールキャッチャーからのメールヘッダー
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>