2

Rails で一種の動的なメーリング リスト システムを実装しています。私は基本的に電子メールを送信し、受信者に次の形式で受信させたいと考えています。

From: person@whosentthis.com
To: mailing-list@mysite.com

<body>

To:基本的に、課題は、メーリング リストまたは元の送信者だけに簡単に返信できるように、別のヘッダーを定義しながらメールをアドレスに送信するにはどうすればよいかということです。

4

2 に答える 2

6

メールと封筒

物理的なメール (紙の封筒に紙のシート) のように電子メールでは、封筒の受信者はレターシート自体の受信者と異なる場合があります。

郵便配達員はエンベロープの受信者のみを考慮するため、メール サーバーも同様です。

つまり、実際にはTo:、電子メール ヘッダーのフィールドにリストされている受信者とは異なる受信者に送信して電子メールを送信するように smtp サービスに指示できます。

これを手動で試す

sendmailたとえば、 postfixのコマンドを使用して、手動でこれを試すことができます。

# bash
sendmail really_send_to_this_address@example.com < mail.txt

どこ

# mail.txt
From: foo@example.com
To: this_will_be_seen_in_the_to_field_in_email_clients@example.com
Subject: Testmail

This is a test mail.

really_send_to_this_address@example.comこれにより、電子メールはではなく に配信されますthis_will_be_seen_in_the_to_field_in_email_clients@example.comが、後者はメール クライアントの受信者フィールドに表示されます。

Rails で Envelope_to フィールドを指定する

ActionMailer::Base内部でmail gemを使用します。現在、2013 年 4 月にはプル リクエストenvelope_toがあり、配信前にメッセージのフィールドを指定できます。

これが引っ張られるまでは、 でフォークを指定できますGemfile

# Gemfile 
# ...
gem 'mail', git: 'git://github.com/jeremy/mail.git'

bundle update mailその後、実行する必要があります。また、現在のレールのバージョンによっては、bundle update rails依存関係の問題を解決するためにも実行する必要があります。

その後、次のようにメール メッセージのエンベロープ受信者を設定できます。

# rails
message # => <Mail::Message ...>
message.to = [ "this_will_be_seen_in_the_to_field_in_email_clients@example.com" ]
message.smtp_envelope_to = [ "really_send_to_this_address@example.com" ]
message.from = ...
message.subject = ...
message.body = ...
message.deliver

ドキュメンテーション

于 2013-04-06T13:35:10.647 に答える
0

これにBCCヘッダーを使用しないのはなぜですか? BCCperson@whoshouldreceivethis.commailing-list@mysite.comTO に入れます。

明確化:

これに対する技術的な解決策はありません。電子メールのヘッダーはその役割を果たします。電子メールが送信されると、ヘッダーに影響を与えることはできません。

ただし、TO、CC、BCC、および REPLY-TO を組み合わせて使用​​すると、必要なものが得られると確信しています。

于 2012-09-19T05:41:57.647 に答える