简单来讲的邮件发送成效,邮件协理类

By admin in 4858.com on 2019年4月7日

这几个协理类只好发送简单的基本邮件,只能发送给七个用户,单一内容。不有所抄送成效,附属类小部件添加效果。功能代码如下,

以此援助类只好发送不难的主旨邮件,只可以发送给八个用户,单1内容。不负有抄送成效,附属类小部件添加效果。作用代码如下,

C#,不难的邮件发送功能,邮件帮助类,

本条帮助类只好发送简单的核心邮件,只可以发送给八个用户,单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内容。不有所抄送成效,附属类小部件添…

简介

4858.com,在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初学者1般未有云主机和域名来搭建邮箱服务器,所以我们只能利用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的选取–这是多多益善人发不出去邮件的要紧之一,账号和密码–发不出来邮箱的另3个至关心器重要!
QQ邮箱是应用SSL的,然后小心QQ邮箱此处的密码不是你的qq密码!!
不是你的QQ密码!!
。。作者在那个坑陷了很久~~很久 ~~很久·
其壹密码你登陆qq邮箱,接纳设置,然后点击账号
4858.com 1
4858.com 2
邮箱的密码正是那里的授权码填入后的给您的密码。
1二陆等邮箱发不出去也是因为其有投机的安装。

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

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

功效达成

福寿年高大家供给一个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() 

邮件就会中标发生去啊

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

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

补充

在切实可行执行中,发送邮箱会被架空成二个函数,msg的body和html情势一般会选取flask的render_tempalte来渲染
发送多量邮件时,QQ、12陆信箱服务器很有希望觉得你在发送垃圾邮件因而发不出去。
接续后代环境时应有选取自身搭的邮箱服务器,或然邮箱服务商提供的集团邮箱

欢迎大家一道来和本人斟酌C#相关知识。关切自个儿吗!

迎接我们齐声来和自家研究C#相关文化。关心本身呢!

参考

flask-login粤语文书档案

 

  

 

  

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2019 美高梅手机版4858 版权所有