- PR -

C#でのメールアドレスの指定方法

1
投稿者投稿内容
みな
常連さん
会議室デビュー日: 2001/08/18
投稿数: 32
投稿日時: 2005-08-15 14:34
C#でSmtpMailクラスを使って電子メールを送るクライアント作成しています.
以下のコードでわたしは、message.Toがエンベロープアドレス、
message.Headers.Add("To",・・・);がヘッダー内のToアドレスと
思っているのですが、違うのでしょうか.
そもそも、エンベロープアドレスはMTAの仕事でプログラムから書いては
ならないものなのでしょうか.

SmtpMail.SmtpServer=txtSMTP.Text;
MailMessage message= new MailMessage();
message.From=txtFrom.Text;
message.To=txtTo.Text;

message.Subject=txtSubject.Text;
message.BodyEncoding=
System.Text.Encoding.GetEncoding("ISO-2022-JP");
message.BodyFormat=System.Web.Mail.MailFormat.Text;
message.Body=txtBody.Text;

message.Headers.Add("Reply-To",txtReplyTo.Text);
message.Headers.Add("To",txtHeaderTo.Text);
message.Headers.Add("FROM",txtHeaderFrom.Text);
SmtpMail.Send(message);
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2005-08-16 07:35
引用:

おおとろさんの書き込み (2005-08-15 14:34) より:
C#でSmtpMailクラスを使って電子メールを送るクライアント作成しています.
以下のコードでわたしは、message.Toがエンベロープアドレス、
message.Headers.Add("To",・・・);がヘッダー内のToアドレスと
思っているのですが、違うのでしょうか.


Headersと言う辺りで、たぶん違うと思いません?用意されているメソッドを確認する限り、.NET FrameworkのSmtpMailクラスはヘッダーアドレスとエンベロープアドレスを明確に区別することは出来ないようですね。

引用:

そもそも、エンベロープアドレスはMTAの仕事でプログラムから書いては
ならないものなのでしょうか.


TcpClientを使って、直接SMTPでやり取りすれば、エンベロープアドレスを別途指定することは可能でしょう。ただし、ヘッダーのアドレスと、エンベロープのアドレスが一致していない状態のメールは、Spam等として判断し削除される可能性が高いと思いますよ。素直に普通にメールを出した方がよいと思います。
_________________
甕星 <mikahosi@abox9.so-net.ne.jp>
http://blogs.msmvp.jp/mikahosi/
1

スキルアップ/キャリアアップ(JOB@IT)