asp.Netメールのいくつかの方法のまとめ

8501 ワード

MailMessageは、メール・メッセージ・オブジェクトを作成するための属性と方法を提供します.通常、MailMessageオブジェクトを構築してから、そのプロパティを設定してメールプログラムを構築することができます.一般的なプロパティ:From--メールを送信するアドレスTo--メールを受信するアドレスSubject--メールのタイトルPriority--メールの優先度(有効値はHigh,Low,Normal)Attachments--添付ファイルBcc--密送アドレスCc--抄送アドレスBody--電子メールメッセージのコンテンツBodyFormatを取得または設定する--MailFormatの列挙値を取得または設定する集合を返します.この値は、メッセージ体メールのフォーマット(Html形式、Text形式)Bodyncoding--メッセージの符号化方式符号化(主にBase 64、UUUUencode)UrlContentBaseを指定する:HTML形式メールにおけるURL符号化方式UrlContentLocation:メール情報の優先度(High,Medium,Low)SmtpMailがメールを送信するSMTPプロトコルを担当する.Windows 2000 CDOSYSのメッセージコンポーネントの統合データオブジェクトを使用してメールメッセージを送信するプロパティと方法を提供します.SmtpMailクラスはSendメソッドを使用しており,その目的はメールを送信することであり,2つのリロードメソッドがある.1. SmtpMail.Send(「メールを送るアドレス」,「メールを受け取るアドレス」,「メールのタイトル」,「メールメッセージの内容」)という方法は簡単で,添付ファイル付きメールを送るのに適していない.
2. SmtpMail.Send(MailMessage)この方法は複雑で柔軟で、添付ファイルの送信に適しており、MailMessageオブジェクトの様々な属性値を設定することができます.ASPを使えばNETはメール送信のプログラムを書いて、それではまずどのようにSMTPを得るべきです.2つの方法があります:第1の方法は現在有名なメールサービスプロバイダのSMTPを呼び出して、例えば新浪、捜狐、網易の無料電子メールボックスのSMTP;2つ目の方法は、IISをインストールするときに一緒にインストールされるSMTP仮想サーバを自分でインストールすることです.MailAttachmentは、メール添付ファイルに関連するオブジェクトクラスで、主にプロパティとメソッドを提供してメール添付オブジェクトを作成します.コンストラクション関数は、添付オブジェクトMailAttachment objMailAttachment=new MailAttachment("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;
    /**////


    ///
    ///

    public string Host
    ...{
        get ...{ return _host; }
        set ...{ _host = value; }
    }
    private int _port;
    /**////
    ///
    ///

    public int Port
    ...{
        get ...{ return _port; }
        set ...{ _port = value; }
    }
    private string _smtpUsername;
    /**////
    ///
    ///

    public string SmtpUsername
    ...{
        get ...{ return _smtpUsername; }
        set ...{ _smtpUsername = value; }
    }
    private string _sendemail;
    /**////
    /// ( , )
    ///

    public string SendEmail
    ...{
        get
        ...{
            return _sendemail;
        }
        set ...{ _sendemail = value; }
    }
    private string _replyToEmail;
    /**////
    ///
    ///

    public string ReplyToEmail
    ...{
        get ...{ return _replyToEmail; }
        set ...{ _replyToEmail = value; }
    }
    private string _replyUserName;
    /**////
    ///
    ///

    public string ReplyUserName
    ...{
        get ...{ return _replyUserName; }
        set ...{ _replyUserName = value; }
    }
    private string _getemail;
    /**////
    ///
    ///

    public string GetEmail
    ...{
        get ...{ return _getemail; }
        set ...{ _getemail = value; }
    }
    private string _smtpPassword;
    /**////
    /// ( , )
    ///

    public string SmtpPassword
    ...{
        get ...{ return _smtpPassword; }
        set ...{ _smtpPassword = value; }
    }
    private string _content;
    /**////
    ///
    ///

    public string Content
    ...{
        get ...{ return _content; }
        set ...{ _content = value; }
    }
    private string _title;
    /**////
    ///
    ///

    public string Title
    ...{
        get ...{ return _title; }
        set ...{ _title = value; }
    }
    private string[] _cc = null;
    /**////
    ///
    ///

    public string[] cc
    ...{
        get ...{ return _cc; }
        set ...{ _cc = value; }
    }
    private string[] _bcc = null;
    /**////
    ///
    ///

    public string[] bcc
    ...{
        get ...{ return _bcc; }
        set ...{ _bcc = value; }
    }
    /**////
    ///
    ///

    ///
    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.1.1100です.(2)「アクセス」タブを選択し、「中継」をクリックし、「以下のリストのみ」(デフォルトでは選択されている)を選択し、「追加」をクリックし、「単一コンピュータ」に192.168.1.1100を加える.ヒント(2)が完了していない場合、サーバが1つ以上の受信者アドレスを拒否したという一般的なエラーメッセージが表示されます.サーバ応答:550,5.7.1 Unable to relay [email protected](友情提示:エラーのメールアドレスが異なる)それからコアコードを開始しますが、実は方法(一)との差は多くありません.(一)との主な違いは:1.SMTPの違い、2.objMailMessage.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 ); 

以上の2つの方法をここに紹介します.最も簡単な方法は、ページにサーバボタンを追加し、参照されていない文をボタンクリックイベントに配置することです.もちろん、引用された文が一番上にあることを忘れないでください.