C#メールの送信(書き込みのみ送信)

5722 ワード

以前はsql serverでのメール送信使用を記録していましたが、今はC#コードでメールの使用方法を記録しています.
C#メールの「ワークフロー原理」は、C#ネットワークプログラミングノートに記載されています.例えば、Aはテンセントのメールボックスを使って、Bは網易のメールボックスを使って、AはBに1つのメールを送って、その流れは:Aはメールをテンセントのメールボックスサーバーに送って、それからテンセントのメールボックスサーバーは目標のメールボックス(網易のメールボックス)によって判断して、メールをB用の網易メールサーバーに送信し、メールサーバーを受信してからBメールクライアントに送信する.
メール送信に関するクラスをレビューします.
1:認証クラス:NetWorkCredential
このクラスはクライアント認証のための認証情報で、送信者のメールアドレスとパスワードが必要です.
            NetworkCredential my_credential = new NetworkCredential("[email protected]", "XXXXXXXX");//          --         

2:メールアドレスクラス:MailAddress
送信者と受信者の送信先を指定します.
            MailAddress From = new MailAddress("[email protected]", "   ", System.Text.Encoding.UTF8);//       ,     ,  
一般的には受信者アドレスクラスも作成するが、上記のように(送信者は表示名を記入する必要はない)、この構造関数は5つのリロードがあり、自分で状況を見て使用する.
3:メール情報類:MailMessage
このクラスはメールの基本情報を提供しています.テーマ、内容、添付ファイルなどです.
        public static MailMessage mm = new MailMessage();
        mm.To.Add(new MailAddress(str, "", System.Text.Encoding.UTF8));                  //     ,  Add(),      
        MailAddress maf = new MailAddress("[email protected]", "name",System.Text.Encoding.UTF8);//       ,        ,  
        mm.Sender = maf;                                                                 //       
        mm.From = maf;                                                                   //       (       ,     )
        mm.Body = str_zw;                                                                //    
        mm.Priority = MailPriority.Normal;                                               //   :high,normal,low
        mm.SubjectEncoding = System.Text.Encoding.UTF8;                                  //    
        mm.IsBodyHtml = true;                                                            //   html  (               )
        mm.Subject = str_bt;                                                             //  

4:添付ファイル類Attachment
添付ファイルの提供
            MailMessage mm = new MailMessage();
            Attachment af = new Attachment("   ");//    
            mm.Attachments.Add(af);                  //    ,                

5メール送信クラス:SmtpClient
以上の4つのクラスが設定した情報は、すべてこのクラスで使用されています.
        public void Set_SMTP_Client()
        {
            SmtpClient scMain = new SmtpClient("smtp.mail.qq.com", 25);
            scMain.SendCompleted += new SendCompletedEventHandler(sc_SendCompleted);
            scMain.EnableSsl = false;
            scMain.UseDefaultCredentials = true;
            scMain.Credentials = new System.Net.NetworkCredential(name, pwd);
            scMain.DeliveryMethod = SmtpDeliveryMethod.Network;
            ThreadStart ts = new ThreadStart(fff);
            Thread td = new Thread(ts);
            td.IsBackground = true;
            td.Start();
        
        }
        public void Send()
        {
            try
            {
                scMain.Send(mm);
            }
            catch
            {

            }
        }

次に、他人がカプセル化したメール送信クラスを貼り付けます.
using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Text;
using System.Data;
using System.Net.Mail;
using System.Threading;

/// <summary>
///Sendemail      
/// </summary>
public class Sendemail
{
	public Sendemail()
	{
		//
		//TODO:            
        //
    }
    public static MailMessage mm = new MailMessage();
    public static SmtpClient scMain = new SmtpClient("smtp.yeah.net", 25);//        

    /// <summary>
    ///       
    /// </summary>
    /// <param name="str">     </param>
    /// <param name="str_zw">  </param>
    /// <param name="str_bt">  </param>
    public static void fasong(string str, string str_zw, string str_bt)
    {
        string name = ConfigurationManager.AppSettings["email_name"];//  
        string pwd = ConfigurationManager.AppSettings["email_pwd"];//  
        mm.To.Add(new MailAddress(str, "", System.Text.Encoding.UTF8));
        MailAddress maf = new MailAddress(name, "zhifeiya", System.Text.Encoding.UTF8);//       ,     ,  
        mm.Sender = maf;
        mm.From = maf;
        mm.Body = str_zw;
        mm.Priority = MailPriority.Normal;
        mm.SubjectEncoding = System.Text.Encoding.UTF8;
        mm.IsBodyHtml = true;
        mm.Subject = str_bt;
        try
        {
            //SmtpClient scMain = new SmtpClient("smtp.mail.qq.com", 25);
            scMain.SendCompleted += new SendCompletedEventHandler(sc_SendCompleted);
            scMain.EnableSsl = false;
            scMain.UseDefaultCredentials = true;
            scMain.Credentials = new System.Net.NetworkCredential(name, pwd);
            scMain.DeliveryMethod = SmtpDeliveryMethod.Network;
            ThreadStart ts = new ThreadStart(Statr_Send);
            Thread td = new Thread(ts);
            td.IsBackground = true;
            td.Start();
        }
        catch
        {

        }


    }

    private static void Statr_Send()
    {
        try
        {
            scMain.Send(mm);
        }
        catch
        {

        }
    }

    static void sc_SendCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
    {

    }
}