以此援救类只好发送轻便的中心邮件,只可以发送给三个用户,单1内容。不具备抄送成效,附属类小部件加多效果。功效代码如下,

其1支持类只可以发送简单的着力邮件,只可以发送给多个用户,单1内容。不抱有抄送成效,附件添加效果。功效代码如下,

C#,轻松的邮件发送功效,邮件协理类,

邮件补助类,Mail发送邮件。其1援救类只可以发送轻松的基本邮件,只好发送给三个用户,单1内容。不抱有抄送功效,附属类小部件增加效果。功用代码如下,

        private void button3_Click(object sender, EventArgs e)
        {
            int result = SendEmail("[email protected]", "123456", new string[] { "[email protected]" }, "测试标题", "测试内容", "smtp.qq.com");
            MessageBox.Show(result.ToString());
        }
        ///<summary>
        /// 发送邮件
        ///</summary>
        ///<param name="sendEmailAddress">发件人邮箱</param>
        ///<param name="sendEmailPwd">发件人密码</param>
        ///<param name="msgToEmail">收件人邮箱地址</param>
        ///<param name="title">邮件标题</param>
        ///<param name="content">邮件内容</param>
        ///<param name="host">邮件SMTP服务器</param>
        ///<returns>0:失败。1:成功!</returns>

        public static int SendEmail(string sendEmailAddress, string sendEmailPwd, string[] msgToEmail, string title, string content, string host)
        {
            //发件者邮箱地址
            string fjrtxt = sendEmailAddress;
            //发件者邮箱密码
            string mmtxt = sendEmailPwd;
            //主题
            string zttxt = title;
            //内容
            string nrtxt = content;
            string[] fasong = fjrtxt.Split('@');
            //设置邮件协议
            SmtpClient client = new SmtpClient(host);   //System.Net.Mail.SmtpClient
            client.UseDefaultCredentials = false;
            //通过网络发送到Smtp服务器
            client.DeliveryMethod = SmtpDeliveryMethod.Network;
            //通过用户名和密码 认证
            client.Credentials = new NetworkCredential(fasong[0].ToString(), mmtxt);  //System.Net.NetworkCredential
            //QQ邮箱使用ssl加密,需要设置SmtpClient.EnableSsl 属性为True表示“指定 SmtpClient 使用安全套接字层 (SSL) 加密连接。”
            client.EnableSsl = true;

            //发件人和收件人的邮箱地址
            MailMessage mmsg = new MailMessage();
            mmsg.From = new MailAddress(fjrtxt);
            for (int i = 0; i < msgToEmail.Length; i++)
            {
                mmsg.To.Add(new MailAddress(msgToEmail[i]));
            }
            //邮件主题
            mmsg.Subject = zttxt;
            //主题编码
            mmsg.SubjectEncoding = Encoding.UTF8;
            //邮件正文
            mmsg.Body = nrtxt;
            //正文编码
            mmsg.BodyEncoding = Encoding.UTF8;
            //设置为HTML格式
            mmsg.IsBodyHtml = true;
            //优先级
            mmsg.Priority = MailPriority.High;
            try
            {
                client.Send(mmsg);
                return 1;
            }
            catch (Exception exss)
            {
                string msg = exss.Message;
                return 0;
            }
        }

值得注意的是,使用QQ邮箱时,发件人密码使用的是QQ邮箱独立密码

在winform先后测试有效,关于在web页面使用,有待测试。

迎接大家一齐来和自家探讨C#相关知识。关切本身吗!

那么些补助类只好发送简单的骨干邮件,只可以发送给几个用户,单1内容。不具有抄送成效,附属类小部件添…

简介

在WEB开辟时,大家平时会选取到发送邮件的意义,注册时大概改换密码时,要求表明邮箱,在flask的扩展中有Flask-mai来帮衬落成这一功力

        private void button3_Click(object sender, EventArgs e)
        {
            int result = SendEmail("123456@qq.com", "123456", new string[] { "530794089@qq.com" }, "测试标题", "测试内容", "smtp.qq.com");
            MessageBox.Show(result.ToString());
        }
        ///<summary>
        /// 发送邮件
        ///</summary>
        ///<param name="sendEmailAddress">发件人邮箱</param>
        ///<param name="sendEmailPwd">发件人密码</param>
        ///<param name="msgToEmail">收件人邮箱地址</param>
        ///<param name="title">邮件标题</param>
        ///<param name="content">邮件内容</param>
        ///<param name="host">邮件SMTP服务器</param>
        ///<returns>0:失败。1:成功!</returns>

        public static int SendEmail(string sendEmailAddress, string sendEmailPwd, string[] msgToEmail, string title, string content, string host)
        {
            //发件者邮箱地址
            string fjrtxt = sendEmailAddress;
            //发件者邮箱密码
            string mmtxt = sendEmailPwd;
            //主题
            string zttxt = title;
            //内容
            string nrtxt = content;
            string[] fasong = fjrtxt.Split('@');
            //设置邮件协议
            SmtpClient client = new SmtpClient(host);   //System.Net.Mail.SmtpClient
            client.UseDefaultCredentials = false;
            //通过网络发送到Smtp服务器
            client.DeliveryMethod = SmtpDeliveryMethod.Network;
            //通过用户名和密码 认证
            client.Credentials = new NetworkCredential(fasong[0].ToString(), mmtxt);  //System.Net.NetworkCredential
            //QQ邮箱使用ssl加密,需要设置SmtpClient.EnableSsl 属性为True表示“指定 SmtpClient 使用安全套接字层 (SSL) 加密连接。”
            client.EnableSsl = true;

            //发件人和收件人的邮箱地址
            MailMessage mmsg = new MailMessage();
            mmsg.From = new MailAddress(fjrtxt);
            for (int i = 0; i < msgToEmail.Length; i++)
            {
                mmsg.To.Add(new MailAddress(msgToEmail[i]));
            }
            //邮件主题
            mmsg.Subject = zttxt;
            //主题编码
            mmsg.SubjectEncoding = Encoding.UTF8;
            //邮件正文
            mmsg.Body = nrtxt;
            //正文编码
            mmsg.BodyEncoding = Encoding.UTF8;
            //设置为HTML格式
            mmsg.IsBodyHtml = true;
            //优先级
            mmsg.Priority = MailPriority.High;
            try
            {
                client.Send(mmsg);
                return 1;
            }
            catch (Exception exss)
            {
                string msg = exss.Message;
                return 0;
            }
        }
        private void button3_Click(object sender, EventArgs e)
        {
            int result = SendEmail("123456@qq.com", "123456", new string[] { "530794089@qq.com" }, "测试标题", "测试内容", "smtp.qq.com");
            MessageBox.Show(result.ToString());
        }
        ///<summary>
        /// 发送邮件
        ///</summary>
        ///<param name="sendEmailAddress">发件人邮箱</param>
        ///<param name="sendEmailPwd">发件人密码</param>
        ///<param name="msgToEmail">收件人邮箱地址</param>
        ///<param name="title">邮件标题</param>
        ///<param name="content">邮件内容</param>
        ///<param name="host">邮件SMTP服务器</param>
        ///<returns>0:失败。1:成功!</returns>

        public static int SendEmail(string sendEmailAddress, string sendEmailPwd, string[] msgToEmail, string title, string content, string host)
        {
            //发件者邮箱地址
            string fjrtxt = sendEmailAddress;
            //发件者邮箱密码
            string mmtxt = sendEmailPwd;
            //主题
            string zttxt = title;
            //内容
            string nrtxt = content;
            string[] fasong = fjrtxt.Split('@');
            //设置邮件协议
            SmtpClient client = new SmtpClient(host);   //System.Net.Mail.SmtpClient
            client.UseDefaultCredentials = false;
            //通过网络发送到Smtp服务器
            client.DeliveryMethod = SmtpDeliveryMethod.Network;
            //通过用户名和密码 认证
            client.Credentials = new NetworkCredential(fasong[0].ToString(), mmtxt);  //System.Net.NetworkCredential
            //QQ邮箱使用ssl加密,需要设置SmtpClient.EnableSsl 属性为True表示“指定 SmtpClient 使用安全套接字层 (SSL) 加密连接。”
            client.EnableSsl = true;

            //发件人和收件人的邮箱地址
            MailMessage mmsg = new MailMessage();
            mmsg.From = new MailAddress(fjrtxt);
            for (int i = 0; i < msgToEmail.Length; i++)
            {
                mmsg.To.Add(new MailAddress(msgToEmail[i]));
            }
            //邮件主题
            mmsg.Subject = zttxt;
            //主题编码
            mmsg.SubjectEncoding = Encoding.UTF8;
            //邮件正文
            mmsg.Body = nrtxt;
            //正文编码
            mmsg.BodyEncoding = Encoding.UTF8;
            //设置为HTML格式
            mmsg.IsBodyHtml = true;
            //优先级
            mmsg.Priority = MailPriority.High;
            try
            {
                client.Send(mmsg);
                return 1;
            }
            catch (Exception exss)
            {
                string msg = exss.Message;
                return 0;
            }
        }

配置

flask-mail发送邮件须要你提供你的邮箱账号和密码。某个配置是出殡和埋葬邮箱所必须的·。大多数flask初学者一般从不云主机和域名来搭建邮箱服务器,所以大家只好使用qq等邮件服务商给你的邮箱
此间介绍了哪些铺排邮箱的config
支出在mail文件夹中

#/app/config
MAIL_SERVER = 'smtp.qq.com'
MAIL_PORT = 465
MAIL_USE_TLS = False
MAIL_USE_SSL = True
# 注意此处,很多人配置发不出去和这个是有关系的
MAIL_PASSWORD = '**********'
MAIL_USERNAME = '********@qq.com'

此间以qq邮箱为例子,我们填入了qq邮箱的服务器地址,他的信箱服务的端口,TLS,SSL的选项–那是数不尽人发不出去邮件的根本之1,账号和密码–发不出来邮箱的另一个首要!
QQ邮箱是行使SSL的,然后小心QQ邮箱此处的密码不是你的qq密码!!
不是你的QQ密码!!
。。笔者在那些坑陷了很久~~很久 ~~很久·
那个密码你登入qq邮箱,接纳安装,然后点击账号
金沙注册送58 1
金沙注册送58 2
邮箱的密码便是此处的授权码填入后的给您的密码。
1二陆等邮箱发不出去也是因为其有谈得来的安装。

值得注意的是,使用QQ邮箱时,发件人密码使用的是QQ邮箱独立密码

值得注意的是,使用QQ邮箱时,发件人密码使用的是QQ邮箱独立密码

效用实现

贯彻我们需求2个app实例

#/usr/bin/env python
# mail/app.py
from flask import Flask
from flask_mail import Mail, Message
from threading import Thread


app = Flask(__name__)
mail = Mail(app)

def send_async_email(app,msg):
    with app.app_context():
        mail.send()

def SendMail():
    msg = Message('test',sender='***@qq.com',\
                        recipients=["***@example.com"])
#recipients是个列表,包含所有收件人
#此处的test是邮箱的主题,sender和config中的MAIL_USERNAME要一致哦
    msg.body = 'testbody'
    msg.html = '<b>test</b>body'
#邮件发送给目标,可以有文本,两种方式呈现,你能看见怎样的取决于你的客户端
    thr = Thread(target=send_async_email,args=[app,msg])
#使用多线程,在实际开发中,若是不使用异步、多线程等方式,网页会卡住
    thr.start()
    return 'ok'

在脚下文件夹使用python

>>from app import SendMail
>>SendMail() 

邮件就会成功发生去呀

金沙注册送58,在winform主次测试有效,关于在web页面使用,有待测试。

在winform先后测试有效,关于在web页面使用,有待测试。

补充

在实际举办中,发送邮箱会被架空成2个函数,msg的body和html方式一般会采取flask的render_tempalte来渲染
出殡多量邮件时,QQ、1二陆邮箱服务器很有望认为你在出殡和埋葬垃圾邮件因而发不出去。
生育条件时应该利用自个儿搭的信箱服务器,也许邮箱服务商提供的公司邮箱

招待我们一同来和自家商讨C#连带文化。关怀本人啊!

招待我们一起来和本身研讨C#连锁文化。关心自个儿吗!

参考

flask-login粤语文书档案

 

  

 

  

 

相关文章

网站地图xml地图