asp.netでメールを送るいくつかの方法のまとめ


メールメッセージオブジェクトを作成するための属性と方法を提供します。通常は、まずMail Messageオブジェクトを構築し、その後、その属性を設定する方法でメールプログラムを構築することができる。よく使う属性:From--メールを送る住所To--メールを受け取る住所Subject--メールのタイトルPriority--メールの優先度(有効値はHigh、Low、Normal)Attachments--集合に戻ります。添付ファイルBccを代表して、密送先Cc--メールアドレスBodyを書き写す--メールメッセージの内容を取得または設定するBodyFormat--Mail Formatの列挙値を取得または設定する。この値はメッセージボディメールのフォーマット(Htmlフォーマット、Textフォーマット)Bodynecoding--指定メッセージの符号化方式を指定する(主にBase 64があります。UUencode)UrlContentBase:HTML形式メールにおけるURL符号化方式UrlContentLocation:メール情報の優先度(High,Medium,Low)SmtpMailはメールを送信するSMTPプロトコルを担当しています。属性と方法を提供します。windows 2000 CDOYSのメッセージコンポーネントの接続データオブジェクトを使用してメールメッセージを送信します。SmtpMail類はSendメソッドを使用しています。目的はメールを送ることです。1.SmtpMail.Send(「メールを送る住所」「メールを受け取る住所」「メールのタイトル」「メールメッセージの内容」)この方法は簡単で、添付のメールを送るには不向きです。
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 ); 
以上の方法をここに紹介します。上記の方法を利用すると、ページにサーバボタンを追加し、参照を除く語句をボタンでイベントをクリックします。もちろん、引用された語句は一番上に置くことを忘れないでください。