0

Gmail アカウントで毎分新しいメールをチェックする cron ジョブを実行しています。新しいメールが見つかった場合、次のように始まる受信機能がトリガーされます。

  def receive(email)     
    # REPORT SOME INFORMATION ABOUT INBOUND EMAIL RECEIPT
    puts "SUBJECT: #{email.subject}" 
    puts "#{email.class}"
    puts email.to.inspect
    puts email.bcc.inspect
    puts email.from.inspect
    ...
  end

TO または BCC フィールドでシステムをアドレス指定する電子メールのみを処理したいと考えています。これは、ユーザーがさまざまな送信先の電子メール アドレスを他人に開示してはならないという考え方です。

問題は、この関数が、「email」パラメータとしてこのオブジェクトに渡された TMail オブジェクトから BCC 情報を取得できないように見えることです。TO アドレスは正常に送信されますが、BCC は送信されません。

なぜこれが当てはまるのか誰にも分かりますか?

4

1 に答える 1

1

TL;DR バージョン:メール クライアントとして、BCC フィールドを確実に取得することはできません。

もちろん、BCC フィールドがありません。メールの送信に使用されると、メッセージから削除されます。

BCCとはブラインドカーボンコピーのことです。そして、メッセージを受信する他のすべての人にアドレスを教えずに、メッセージで人々をコピーするために使用されます. 受信メールにこの情報がまだ含まれている場合、その目的は果たされません。

おそらく、アドレス指定に関するセクションRFC 2822を読む必要があります。

あなたが求めていることは明示的に定義されておらず、実装に依存しています。メール ユーザー エージェント (Outlook/Thunderbird/Gmail/etc) またはメール トランスポート/送信エージェント (メッセージをルーティングする任意のプログラム) が、必要なデータを取得する前に削除している可能性があります。

于 2009-11-02T20:05:18.640 に答える