C#實現郵件發送功能


首先我們要知道我們使用的郵件的主機、端口等信息。本次博客就以QQ郵箱為例子.

第一、你打開郵箱,找到設置,選擇賬戶;在下面找到 “ POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務

第二、開啟POP3/SMTP服務

 

 第三步、服務開啟之后,就是代碼了,具體代碼如下

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Mail;
using System.Text;
using System.Web;
using System.Windows.Forms;

namespace Email
{
    class Programs
    {
        static void Main(string[] args)
        {
            btnEmailCode_Click();
        }
        //獲取郵箱驗證碼
        public static void btnEmailCode_Click()
        {
            string mailFrom = "************"; //發件人郵箱地址                                                                      
            MailAddress MessageFrom = new MailAddress(mailFrom); //發件人郵箱地址
            string mailTo = "************";//收件人地址
            string activeCode = Guid.NewGuid().ToString().Substring(0, 6);//生成激活碼      
            string MessageSubject = "******************"; //主題
            string MessageBody = "********************";//郵件內容
            if (Send(MessageFrom, mailTo, MessageSubject, MessageBody))
            {
                Console.WriteLine("發送郵件成功");
            }
            else
            {
                Console.WriteLine("發送郵件失敗");
            }

        }
        public static bool Send(MailAddress MessageFrom, string MessageTo, string MessageSubject, string MessageBody)
        {
            MailMessage message = new MailMessage();
            message.From = MessageFrom;
            message.To.Add(MessageTo); //收件人郵箱地址可以是多個以實現群發
            message.Subject = MessageSubject;
            message.Body = MessageBody;
            message.IsBodyHtml = true; //是否為html格式
            message.Priority = MailPriority.High; //發送郵件的優先等級
            SmtpClient sc = new SmtpClient();
            sc.Host = "smtp.qq.com"; //指定發送郵件的服務器地址或IP
            sc.Port = 25; //指定發送郵件端口
            /*
             * email :發件人的郵箱賬號
             * butpgifsvvqebcbf:這個是你發送郵件的一個令牌,你需要在郵箱中申請之后會給你一個這樣的令牌(字符串)
             * **/
            sc.Credentials = new System.Net.NetworkCredential("email", "butpgifsvvqebcbf"); //指定登錄服務器的用戶名和密碼(發件人的郵箱登陸密碼)
            try
            {
                sc.Send(message); // 發送郵件
                return true;
            }
            catch (ArgumentNullException ex)
            {
                return false;
                MessageBox.Show(ex.Message);
            }
            catch (ArgumentException ex)
            {
                return false;
                MessageBox.Show(ex.Message);
            }
            //已釋放此對象。
            catch (ObjectDisposedException ex)
            {
                return false;
                MessageBox.Show(ex.Message);
            }
            catch (InvalidOperationException ex)
            {
                return false;
                MessageBox.Show(ex.Message);
            }
            catch (SmtpFailedRecipientException ex)
            {
                return false;
                MessageBox.Show(ex.Message);
            }
            catch (SmtpException ex)
            {
                return false;
                MessageBox.Show(ex.Message);
            }
            catch (Exception ex)
            {
                return false;
                MessageBox.Show(ex.Message);
            }
        }


        private static void SendCompletedCallback(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
        {
            if (e.Cancelled)  //郵件發送被取消
            {
                MessageBox.Show("發送被取消!");
            }
            if (e.Error != null)   //郵件發送失敗
            {
                MessageBox.Show("發送失敗!");
            }
            else   //發送成功
            {
                MessageBox.Show("發送成功!");
            }
        }
    }
}

 

注意:

 sc.Host = "smtp.qq.com"; //指定發送郵件的服務器地址或IP sc.Port = 25; //指定發送郵件端口

這樣你就可以發送成郵件了

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM