C#调用QQ_Mail发送邮件实例代码两例

 更新时间:2022年04月18日 16:39:10   作者:農碼一生  
这篇文章介绍了C#调用QQ_Mail发送邮件的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

代码案例一:

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 + "发送的一段信息:";
                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>
        /// 发送者邮箱
        /// </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>
        /// 邮箱账号(默认为发送者邮箱的账号)
        /// </summary>
        public string UserName { get; set; }

        /// <summary>
        /// 邮箱密码(默认为发送者邮箱的密码),默认格式GB2312
        /// </summary>
        public string Password { get; set; }

        /// <summary>
        /// 邮箱优先级
        /// </summary>
        public MailPriority MailPriority { get; set; }

        /// <summary>
        ///  邮件正文编码格式
        /// </summary>
        public Encoding Encoding { get; set; }

        /// <summary>
        /// 构造参数,发送邮件,使用方法备注:公开方法中调用
        /// </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 发送人地址
                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;
                //邮件优先级
                mailMessage.Priority = this.MailPriority;

                //发送邮件代码实现
                var smtpClient = new SmtpClient
                {
                    Host = this.Host,
                    EnableSsl = true,
                    Credentials = new NetworkCredential(this.UserName, this.Password)
                };
//加这段之前用公司邮箱发送报错:根据验证过程,远程证书无效
//加上后解决问题
                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("发送邮件异常,收信邮箱:{0}", this.To[0]), ex);
                return -1;
            }
        }
    }
}

到此这篇关于C#调用QQ_Mail发送邮件的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • C#中List用法介绍详解

    C#中List用法介绍详解

    本文详细讲解了C#中List用法介绍,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • C#实现利用反射简化给类字段赋值的方法

    C#实现利用反射简化给类字段赋值的方法

    这篇文章主要介绍了C#实现利用反射简化给类字段赋值的方法,涉及C#操作反射的相关技巧,需要的朋友可以参考下
    2015-05-05
  • 如何使用C#从word文档中提取图片

    如何使用C#从word文档中提取图片

    图片和文字是word文档中两种最常见的对象,在微软word中,如果我们想要提取出一个文档内的图片,只需要右击图片选择另存为然后命名保存就可以了,今天这篇文章主要是实现如何使用C#从word文档中提取图片,需要的朋友参考下
    2016-02-02
  • C#实现压缩pdf文件的示例代码

    C#实现压缩pdf文件的示例代码

    PDF 文件如果文件太大则会影响传输效果同时也会占用过多磁盘空间,所以这篇文章主要为大家详细介绍了如何使用C#实现有效地压缩 PDF 文件,需要的可以参考下
    2023-11-11
  • C#中的数组作为参数传递所引发的问题

    C#中的数组作为参数传递所引发的问题

    这篇文章主要介绍了C#中的数组作为参数传递所引发的问题 的相关资料,需要的朋友可以参考下
    2016-03-03
  • WindowsForm实现TextBox占位符Placeholder提示功能

    WindowsForm实现TextBox占位符Placeholder提示功能

    这篇文章主要介绍了WindowsForm实现TextBox占位符Placeholder提示,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • C#实现的简单随机数产生器功能示例

    C#实现的简单随机数产生器功能示例

    这篇文章主要介绍了C#实现的简单随机数产生器功能,涉及C#简单界面布局、事件响应及随机数生成相关操作技巧,需要的朋友可以参考下
    2017-09-09
  • 基于C#实现Windows服务的方法详解

    基于C#实现Windows服务的方法详解

    在实际应用过程中,有时候我们希望开发的程序,不需要界面,直接开机就可以长时间运行,这时候,我们可以考虑做成一个Windows服务。这篇文章跟大家介绍一下,如何基于C#实现Windows服务的创建、安装、启动、停止和卸载,需要的可以参考一下
    2022-09-09
  • 一个进程间通讯同步的C#框架引荐

    一个进程间通讯同步的C#框架引荐

    这篇文章主要介绍了一个进程间通讯同步的C#框架,代码具有相当的稳定性和可维护性,随着.NET的开源也会被注入更多活力,推荐!需要的朋友可以参考下
    2015-07-07
  • c# 实现发送邮件的功能

    c# 实现发送邮件的功能

    这篇文章主要介绍了c# 如何实现发送邮件的功能,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07

最新评论