程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#利用smtp服務器發送郵件

C#利用smtp服務器發送郵件

編輯:C#入門知識

在命名空間using System.Net.Mail中提供方法根據指定的smtp服務器來發送郵件。下面說說如何實現:

  1、首先要發送郵件,需要有一個郵箱帳號,比如網易郵箱、新郎郵箱、qq郵箱等,我以網易的163郵箱為例。然後我們需要知道163郵箱的smtp服務器地址:smtp.163.com。一般常用的Smtp服務器地址為:
    網易126:smtp.126.com
    網易163:smtp.163.com
    搜狐:smtp.sohu.com
    新浪:smtp.sina.com.cn
    雅虎:smtp.mail.yahoo.com

  2、現在我們可以開始實現了。在新建的C# Console Application中,需要加入兩個命名空間:

using System.Net.Mail;  //新建郵件、發送郵件需要用到
using System.Net;       //建立認證帳號需要用到

  3、下面是發送郵件的函數:

 public static void SendEmail(
    string userEmail,  //發件人郵箱
    string userPswd,   //郵箱帳號密碼
    string toEmail,    //收件人郵箱
    string mailServer, //郵件服務器
    string subject,    //郵件標題
    string mailBody,   //郵件內容
    string[] attachFiles //郵件附件
    )
{
    //郵箱帳號的登錄名
    string username = userEmail.Substring(0, userEmail.IndexOf(@));
    //郵件發送者
    MailAddress from = new MailAddress(userEmail);
    //郵件接收者
    MailAddress to = new MailAddress(toEmail);
    MailMessage mailobj = new MailMessage(from, to);
    // 添加發送和抄送
    // mailobj.To.Add("");
    // mailobj.CC.Add("");

    //郵件標題
    mailobj.Subject = subject;
    //郵件內容
    mailobj.Body = mailBody;
    foreach (string attach in attachFiles)
    {
        mailobj.Attachments.Add(new Attachment(attach));
    }
    //郵件不是html格式
    mailobj.IsBodyHtml = false;
    //郵件編碼格式
    mailobj.BodyEncoding = System.Text.Encoding.GetEncoding("GB2312");
    //郵件優先級
    mailobj.Priority = MailPriority.High;

    //Initializes a new instance of the System.Net.Mail.SmtpClient class
    //that sends e-mail by using the specified SMTP server.
    SmtpClient smtp = new SmtpClient(mailServer);
    //或者用:
    //SmtpClient smtp = new SmtpClient();
    //smtp.Host = mailServer;

    //不使用默認憑據訪問服務器
    smtp.UseDefaultCredentials = false;
    smtp.Credentials = new NetworkCredential(username, userPswd);
    //使用network發送到smtp服務器
    smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
    try
    {
        //開始發送郵件
        smtp.Send(mailobj);
    }
    catch (Exception e)
    {
        Console.WriteLine(e.Message);
        Console.WriteLine(e.StackTrace);
    }
}

 4、好了,你也可以去試試給自己的應用程序加上發送郵件的功能了。

    

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