asp.netでメールを送るいくつかの方法のまとめ
2.SmtpMail.Send(MailMessage)この方法は複雑で柔軟で、添付ファイルの送信に適しており、また、Mail Messageオブジェクトの各種属性値を設定することができる。ASP.NETでメール送信のプログラムを書いたら、まずSMTPをどうやって入手すればいいですか?二つの方法があります。第一の方法は現在有名なメールサービスプロバイダのSMTPを呼び出します。例えば、新浪、捜狐、網易の無料電子メールのSMTPです。二つ目の方法は自分でSMTP仮想サーバーをインストールすることです。これはIISをインストールする時一緒に装着します。Mail Attachmentは、メール添付ファイルに関するオブジェクト類で、主に属性と方法を提供してメール添付オブジェクトを作成します。コンストラクタは、添付のオブジェクトを作成します。 ObjMail Attachment=new Mail Attachment("d:\test"。txt")//////送信メールの添付ファイルの呼び出し形式
MailMessage objMailMessage= new MailMessage();
objMailMessage.Attachments.Add( objMailAttachment );//
パッケージ化されたメール送信クラス
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Net;
using System.Net.Mail;
using System.Text;
public class SendMail
...{
public SendMail()
...{
}
private string _host;
/**//// <summary>
///
/// </summary>
public string Host
...{
get ...{ return _host; }
set ...{ _host = value; }
}
private int _port;
/**//// <summary>
///
/// </summary>
public int Port
...{
get ...{ return _port; }
set ...{ _port = value; }
}
private string _smtpUsername;
/**//// <summary>
///
/// </summary>
public string SmtpUsername
...{
get ...{ return _smtpUsername; }
set ...{ _smtpUsername = value; }
}
private string _sendemail;
/**//// <summary>
/// ( , )
/// </summary>
public string SendEmail
...{
get
...{
return _sendemail;
}
set ...{ _sendemail = value; }
}
private string _replyToEmail;
/**//// <summary>
///
/// </summary>
public string ReplyToEmail
...{
get ...{ return _replyToEmail; }
set ...{ _replyToEmail = value; }
}
private string _replyUserName;
/**//// <summary>
///
/// </summary>
public string ReplyUserName
...{
get ...{ return _replyUserName; }
set ...{ _replyUserName = value; }
}
private string _getemail;
/**//// <summary>
///
/// </summary>
public string GetEmail
...{
get ...{ return _getemail; }
set ...{ _getemail = value; }
}
private string _smtpPassword;
/**//// <summary>
/// ( , )
/// </summary>
public string SmtpPassword
...{
get ...{ return _smtpPassword; }
set ...{ _smtpPassword = value; }
}
private string _content;
/**//// <summary>
///
/// </summary>
public string Content
...{
get ...{ return _content; }
set ...{ _content = value; }
}
private string _title;
/**//// <summary>
///
/// </summary>
public string Title
...{
get ...{ return _title; }
set ...{ _title = value; }
}
private string[] _cc = null;
/**//// <summary>
///
/// </summary>
public string[] cc
...{
get ...{ return _cc; }
set ...{ _cc = value; }
}
private string[] _bcc = null;
/**//// <summary>
///
/// </summary>
public string[] bcc
...{
get ...{ return _bcc; }
set ...{ _bcc = value; }
}
/**//// <summary>
///
/// </summary>
/// <returns> </returns>
public bool Send()
...{
try
...{
MailMessage objMailMessage;
objMailMessage = new MailMessage(SendEmail, _getemail, _title, _content);
if (!string.IsNullOrEmpty(_replyToEmail) && !string.IsNullOrEmpty(_replyUserName))
...{
MailAddress reply = new MailAddress(_replyToEmail, _replyUserName);
objMailMessage.ReplyToList.Add(reply);
}
objMailMessage.BodyEncoding = Encoding.GetEncoding(936);
objMailMessage.IsBodyHtml = true;
if (cc != null && cc.Length > 0)
...{
foreach (string ccAddress in cc)
...{
objMailMessage.CC.Add(new MailAddress(ccAddress));
}
}
if (bcc != null && bcc.Length > 0)
...{
foreach (string bccAddress in bcc)
...{
objMailMessage.Bcc.Add(new MailAddress(bccAddress));
}
}
SmtpClient client = new SmtpClient(this._host, this._port);
if (!String.IsNullOrEmpty(this.SmtpUsername) && !String.IsNullOrEmpty(this.SmtpPassword))
...{
client.Credentials = new NetworkCredential(this.SmtpUsername, this.SmtpPassword);
}
client.EnableSsl = false;
client.Send(objMailMessage);
objMailMessage.Dispose();
return true;
}
catch
...{
return false;
}
}
}
呼び出し方法およびステップ:1、SendMailクラスのオブジェクトを作成し、このオブジェクトにメールの必要なパラメータを順次送信し、2、Send()メソッドを呼び出します。メールの添付機能は、自分でも上の紹介に従ってSendMail類を拡張することができます。ここでは例を挙げません。ASP.NETでは、本機のSMTP仮想サーバのSMTPを利用してメールを送信します。まずSMTP構成を説明します。 (1)右クリックの「SMTP仮想サーバ」で「プロパティ」を選択します。「通常」タブで「IPアドレス(P)」を設定します。私が設定したのは192.168.100です。 (2)「アクセス」タブを選択し、「中継」をクリックし、「以下のリストのみ」(デフォルトでは選択されている)を選択し、「追加」をクリックし、「単一コンピュータ」に192.168.100を追加します。 ヒントは、(2)が完了していないと、よくあるエラーメッセージが表示されます。サーバーは一つ以上の宛先アドレスを拒否しました。サーバーの応答は5505.7.1 Uble to relay forです。[email protected](友情提示:エラー中のメールアドレスは違います)コアコードを開始しますが、方法(一)と同じです。(一)との主な違いは、1.SMTPの違いで、2.objMail Message.Fromではこの方法は簡単に記入できますが、(一)ではASP.NET(C)を使ってメールを送るコアコードは以下の通りです。
//
using System.Web.Mail;
MailMessage objMailMessage;
MailAttachment objMailAttachment;
//
objMailAttachment = new MailAttachment( "d:\test.txt" );//
//
objMailMessage = new MailMessage();
objMailMessage.From = "[email protected]";//
objMailMessage.To = "[email protected]";// ,
objMailMessage.Subject = " : ";//
objMailMessage.Body = " : !";//
objMailMessage.Attachments.Add( objMailAttachment );//
//SMTP
SmtpMail.SmtpServer = "192.168.1.100";
//
SmtpMail.Send( objMailMessage );
以上の方法をここに紹介します。上記の方法を利用すると、ページにサーバボタンを追加し、参照を除く語句をボタンでイベントをクリックします。もちろん、引用された語句は一番上に置くことを忘れないでください。