程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C# 發送郵件整理,包括控制台程序、WPF、WebForm 及 ASP.NET MVC

C# 發送郵件整理,包括控制台程序、WPF、WebForm 及 ASP.NET MVC

編輯:C#入門知識

  一直想把發送郵件的功能掌握,總是各種情況拖著了,這兩天終於看了一下,整理一下,希望能幫到想學的。

  發送郵件使用SMTP服務器,有兩種方案,一種是使用IIS的SMTP功能;另一種是直接使用郵件供應商的SMTP,比如Gmail、Sina、QQ等,使用這些SMTP服務器必須得注冊帳號,一般可以直接用郵箱及密碼,但是有些郵箱必須開啟POP3/SMTP服務才可以,比如QQ郵箱默認是關閉的,可以在“設置”->“賬戶”裡面找到。我今天整理的都是用的第二種。

  早期的.NET版本用的是 System.Web.Mail 類提供的功能來發郵件;2.0版本推出了 System.Net.Mail 類來代替 System.Web.Mail ,但是我在 WebForm 裡面使用的時候用System.Net.Mail 老是觸發異常,後來改用 System.Web.Mail 才成功了,可以看下我代碼裡的區別;ASP.NET MVC 3 提供了 WebMail 類來發送郵件,更加方便。

  控制台程序、WPF、WebForm 及 ASP.NET MVC 我都測試了一下,控制台程序和 WPF 都用了 System.Net.Mail ,WebForm 和 ASP.NET MVC 都可以用 System.Web.Mail ,而 ASP.NET MVC 3 直接用 WebMail 更方便。下面我把代碼分別貼出來。

  控制台程序:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Mail;//添加引用

namespace SendEmail
{
    class Program
    {
        static void Main(string[] args)
        {
            Program p = new Program();
            bool flag = p.SendEmail();
            if (flag)
            {
                Console.Write("Success !");
            }
            
            Console.Read();
        }

        public bool SendEmail()
        {
            MailMessage msg = new MailMessage();
            msg.To.Add("[email protected]");//郵件接收者的帳號
            msg.From = new MailAddress("[email protected]", "nickname", System.Text.Encoding.UTF8);//發送郵件的帳號及顯示名稱和字符編碼
            msg.Subject = "Subject";//郵件標題 
            msg.SubjectEncoding = System.Text.Encoding.UTF8;//郵件標題編碼 
            msg.Body = "Content";//郵件內容 
            msg.BodyEncoding = System.Text.Encoding.UTF8;//郵件內容編碼 
            msg.IsBodyHtml = false;//是否是HTML郵件 
            msg.Priority = MailPriority.High;//郵件優先級

            SmtpClient client = new SmtpClient();
            client.Credentials = new System.Net.NetworkCredential("[email protected]", "password");//注冊的郵箱和密碼,就QQ郵箱而言,如果設置了獨立密碼,要用獨立密碼代替密碼             
            client.Host = "smtp.qq.com";//QQ郵箱對應的SMTP服務器
            object userState = msg;
            try
            {
                client.SendAsync(msg, userState);
                return true;
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return false;
            }
        }
    }
}

   WPF:

     System.Net.Mail;
           
        
           
                     
           Button_Click(               flag =                               MessageBox.Show(,   
                        MailMessage message =              message.To.Add(             message.From =  MailAddress(,             message.Subject =              message.SubjectEncoding =             message.Body =              message.BodyEncoding =             message.IsBodyHtml =              message.Priority =             Attachment att =  Attachment();
  
             SmtpClient smtp =              smtp.Credentials =  System.Net.NetworkCredential(,             smtp.Host =               userState = 
             
                                                    MessageBox.Show(ex.Message,                      }

   WebForm:

         System.Web.Mail;
 
                     Page_Load(  
  
           Button1_Click(               flag =                               Response.Write(   
                        MailMessage message =              message.To =              message.From =              message.Subject =              message.Body =              
             message.Fields.Add(,              
             message.Fields.Add(,              
             message.Fields.Add(,  
             SmtpMail.SmtpServer =              
                                                          }

  ASP.NET MVC :

= = ;
            WebMail.EnableSsl = ;
            WebMail.UserName = = = ,,“Content

 

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved