溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#怎么調用QQ_Mail發(fā)送郵件

發(fā)布時間:2022-04-19 10:37:24 來源:億速云 閱讀:105 作者:iii 欄目:開發(fā)技術

本篇內容主要講解“C#怎么調用QQ_Mail發(fā)送郵件”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“C#怎么調用QQ_Mail發(fā)送郵件”吧!

代碼案例一:

private void button1_Click(object sender, EventArgs e)
        {
            string myMaillAdress = "";
            string myMaillPassword = "";
            string myMaillMessage = "";
            string toMaillAdress = "";

            QQEmail qq_mial = new QQEmail();
            bool send_status = qq_mial.IsSendEmail(myMaillAdress, toMaillAdress, myMaillMessage, myMaillPassword);
        }
        class QQEmail
        {
            public bool IsSendEmail(string FromAddress, string ToAddress, string Message, string Pwd)
            {
                MailAddress Address = new MailAddress(FromAddress);
                MailMessage mail = new MailMessage();
                mail.SubjectEncoding = System.Text.Encoding.UTF8;
                mail.Subject = "這是" + FromAddress + "發(fā)送的一段信息:";
                mail.BodyEncoding = System.Text.Encoding.UTF8;
                mail.Body = Message;
                mail.IsBodyHtml = true;

                mail.Priority = System.Net.Mail.MailPriority.Low;
                mail.To.Add(ToAddress);

                mail.From = Address;

                SmtpClient smtp = new SmtpClient("smtp.qq.com", 25);//smtp支持的服務器是smtp.qq.com,服務器端口是25,587也行

                smtp.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
                smtp.EnableSsl = true;
                smtp.UseDefaultCredentials = false;
                smtp.Credentials = new System.Net.NetworkCredential(FromAddress, Pwd);//切記這兩個數據一定要填對

                try
                {
                    smtp.Send(mail);
                    return true;
                }
                catch (Exception ex)
                {
                    System.Windows.Forms.MessageBox.Show(ex.Message);
                    return false;
                }
            }
        }

 代碼案例二:

using log4net;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Mail;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;
using System.Text;

namespace BLL
{
    public class emailHandle
    {
        private string _serviceType = "SMTP";
        private string _host;

        /// <summary>
        /// 發(fā)送者郵箱
        /// </summary>
        public string From { get; set; }

        /// <summary>
        /// 接收者郵箱列表
        /// </summary>
        public List<string> To { get; set; }

        /// <summary>
        /// 抄送者郵箱列表
        /// </summary>
        public string[] Cc { get; set; }

        /// <summary>
        /// 秘抄者郵箱列表
        /// </summary>
        public string[] Bcc { get; set; }

        /// <summary>
        /// 郵件主題
        /// </summary>
        public string Subject { get; set; }

        /// <summary>
        /// 郵件內容
        /// </summary>
        public string Body { get; set; }

        /// <summary>
        /// 是否是HTML格式
        /// </summary>
        public bool IsBodyHtml { get; set; }

        /// <summary>
        /// 附件列表
        /// </summary>
        public string[] Attachments { get; set; }

        /// <summary>
        /// 郵箱服務類型(Pop3,SMTP,IMAP,MAIL等),默認為SMTP
        /// </summary>
        public string ServiceType
        {
            get { return _serviceType; }
            set { _serviceType = value; }
        }

        /// <summary>
        /// 郵箱服務器,如果沒有定義郵箱服務器,則根據serviceType和Sender組成郵箱服務器
        /// </summary>
        public string Host
        {
            get { return _host; }
            set { _host = value; }
        }

        /// <summary>
        /// 郵箱賬號(默認為發(fā)送者郵箱的賬號)
        /// </summary>
        public string UserName { get; set; }

        /// <summary>
        /// 郵箱密碼(默認為發(fā)送者郵箱的密碼),默認格式GB2312
        /// </summary>
        public string Password { get; set; }

        /// <summary>
        /// 郵箱優(yōu)先級
        /// </summary>
        public MailPriority MailPriority { get; set; }

        /// <summary>
        ///  郵件正文編碼格式
        /// </summary>
        public Encoding Encoding { get; set; }

        /// <summary>
        /// 構造參數,發(fā)送郵件,使用方法備注:公開方法中調用
        /// </summary>
        public int Send()
        {
            var mailMessage = new MailMessage();

            //讀取To  接收者郵箱列表
            try
            {
                if (this.To != null && this.To.Count > 0)
                {
                    foreach (string to in this.To)
                    {
                        if (string.IsNullOrEmpty(to)) continue;
                        mailMessage.To.Add(new MailAddress(to.Trim()));
                    }
                }
                //讀取Cc  抄送者郵件地址
                if (this.Cc != null && this.Cc.Length > 0)
                {
                    foreach (var cc in this.Cc)
                    {
                        if (string.IsNullOrEmpty(cc)) continue;
                        mailMessage.CC.Add(new MailAddress(cc.Trim()));
                    }
                }
                //讀取Attachments 郵件附件
                if (this.Attachments != null && this.Attachments.Length > 0)
                {
                    foreach (var attachment in this.Attachments)
                    {
                        if (string.IsNullOrEmpty(attachment)) continue;
                        mailMessage.Attachments.Add(new Attachment(attachment));
                    }
                }
                //讀取Bcc 秘抄人地址
                if (this.Bcc != null && this.Bcc.Length > 0)
                {
                    foreach (var bcc in this.Bcc)
                    {
                        if (string.IsNullOrEmpty(bcc)) continue;
                        mailMessage.Bcc.Add(new MailAddress(bcc.Trim()));
                    }
                }
                //讀取From 發(fā)送人地址
                mailMessage.From = new MailAddress(this.From);

                //郵件標題
                Encoding encoding = Encoding.GetEncoding("GB2312");
                mailMessage.Subject = this.Subject;
                //郵件正文是否為HTML格式
                mailMessage.IsBodyHtml = this.IsBodyHtml;
                //郵件正文
                mailMessage.Body = this.Body;
                mailMessage.BodyEncoding = this.Encoding;
                //郵件優(yōu)先級
                mailMessage.Priority = this.MailPriority;

                //發(fā)送郵件代碼實現
                var smtpClient = new SmtpClient
                {
                    Host = this.Host,
                    EnableSsl = true,
                    Credentials = new NetworkCredential(this.UserName, this.Password)
                };
//加這段之前用公司郵箱發(fā)送報錯:根據驗證過程,遠程證書無效
//加上后解決問題
                ServicePointManager.ServerCertificateValidationCallback =
delegate(Object obj, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors) { return true; };
                //認證
                smtpClient.Send(mailMessage);
                return 1;
            }
            catch (Exception ex)
            {
                var loger = LogManager.GetLogger(typeof(emailHandle));
                loger.Info(string.Format("發(fā)送郵件異常,收信郵箱:{0}", this.To[0]), ex);
                return -1;
            }
        }
    }
}

到此,相信大家對“C#怎么調用QQ_Mail發(fā)送郵件”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI