MailMessage、SenderプロパティとFromプロパティの違い


87

System.Net.NET Framework 1.1から3.5フレームワークに切り替えて以来、名前空間を使用していますが、それ以来、私を困惑させていることが1つあります。クラスのプロパティSenderFromプロパティの違いは何MailMessageですか?

それらは両方とも同じですか、そうでない場合はSender一緒に使用する理由がありFromますか?

例えば:

Using m As New System.Net.Mail.MailMessage()
    m.Sender = New System.Net.Mail.MailAddress("test@test.com", "Name here")
    m.From = New System.Net.Mail.MailAddress("test@test.com", "Name here")

    m.Subject = "Test"
    m.Body = "Test"

    Dim client As New System.Net.Mail.SmtpClient("mymailserver.com")
    client.Send(m)
End Using

7
System.Net.Mailの実装の場合、違いはありません。SmtpTransport.SendMailを呼び出すと、これが行われmessage.Sender != null ? message.Sender : message.Fromます。その結果、SmtpClientでは、SenderとFromの個別の値を送信できません
Sam

回答:


70

電子メールのウィキからの抜粋:

ヘッダーフィールド:メッセージヘッダーには、少なくとも次のフィールドを含める必要があります。

差出人:電子メールアドレス、およびオプションで作成者の名前。多くの電子メールクライアントでは、アカウント設定を変更する以外は変更できません。

また、「From:」フィールドは、電子メールメッセージの実際の送信者である必要はないことに注意してください。1つの理由は、「From:」フィールドを偽造して、メッセージが任意のメールアドレスからのものであるように見せかけるのは非常に簡単だからです。電子メールにデジタル署名することは可能ですが、これは偽造がはるかに困難ですが、そのような署名には追加のプログラミングと、多くの場合外部プログラムが必要です。一部のISPは、ホストされていないドメインから送信されたと主張する電子メールを中継しませんが、「差出人:」フィールドで指定された個人または電子メールアドレスが1つであることを確認するチェックはほとんどありません。接続に関連付けられています。一部のISPは、MTAを介して送信される電子メールに電子メール認証システムを適用して、他のMTAが自分から送信されたように見える偽造スパムを検出できるようにします。

送信者:[差出人:]フィールドにリストされている作成者(秘書、リストマネージャーなど)に代わって行動する実際の送信者のアドレス。

http://en.wikipedia.org/wiki/Emailの詳細

たとえば、Gmailは差出人/送信者フィールドを使用して、Gmailアカウントとは異なるメールアドレスからメールを送信します(確認後)。


28

私はこの説明が非常に理解しやすいと思いました(私の強調)。

非常にさまざまな操作が行われる領域の1つは、電子メールの差出人アドレスと電子メールの送信者の概念です。

一部の電子メールサーバーは差出人アドレスを送信者として受け入れ、一部は送信者を自動的に推測し、一部は送信者を明示的に指定する必要があります。

一般に、送信者は電子メールメッセージの実際の発信者です。対照的に、差出人アドレスは、電子メールの単なるヘッダー行であり、何かを意味すると解釈される場合と解釈されない場合があります。多くの場合、差出人アドレスは完全に省略できます。スパマーは、差出人アドレスを簡単に偽装できます。ISPは、スパマーが送信者をスプーフィングできないように努めます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.