C# QQ & 163 邮件发送
这篇文章的目的并不是说明如果进行右键的发送,因为在.net 坝坝的怀抱下邮件发送的功能实现并不会很难,当然邮件发送的代码,还是会贴上的,昨天在写一个邮件发送的功能,我直接找到了原来的代码,想着直接就可以运行了,但是真正情况并非如此,遇到了很多报错,这里做个说明。
测试中出现了如下的报错:
163
1.不允许使用邮箱名称。 服务器响应为:authentication is required,163 smtp14,EsCowACHqdDTBdBay0PiEw--.39304S3 1523582420
2.邮箱不可用。 服务器响应为:User has no permission
3.事务失败。 服务器响应为:DT:SPM 163 smtp13,EcCowAAHf28_ENBawarsDQ--.43148S3 1523585089,please see http://mail.163.com/help/help_spam_16.htm?ip=xx.xx.xx.xx&hostid=smtp13&time=1523585089
通过QQ发邮件基本没有什么大的问题,可以成功,当然这一切的大的问题都是由于现在的qq和163都开始使用授权码,what? 什么意思了,意思就是原来通过邮箱帐号,密码然后发送右键的方式用不了了,所以这也就是为什么我原先的代码用不了。
如果开启所谓的授权码呢?
163:
163现在开启POP3/SMTP服务的时候已经做了说明,如上“请使用授权码登录第三方右键客户端”
如上开启授权码即可,请牢记自己的授权码
QQ:
如上,qq的smtp服务开启与获取授权码
下面开始贴发送的代码:
public class EmalHelper
{
/// <summary>
/// SMTP实例
/// </summary>
static System.Net.Mail.SmtpClient client = null; /// <summary>
/// 发送信息
/// </summary>
/// <param name="Receiver">邮件接收人</param>
/// <param name="Subject">邮件主题</param>
/// <param name="content">邮件内容</param>
public static void SendEmail(string Receiver, string Subject, string content)
{
if (string.IsNullOrEmpty(Receiver) || string.IsNullOrEmpty(Subject)
|| string.IsNullOrEmpty(content))
{
throw new ArgumentNullException("SendEmail参数空异常!");
}
if (client == null)
{
try
{
//163发送配置
client = new System.Net.Mail.SmtpClient();
client.Host = "smtp.163.com";
client.Port = ;
client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
client.EnableSsl = true;
client.UseDefaultCredentials = true; //qq发送配置的参数//切EnableSsl必须设置为true
//client = new System.Net.Mail.SmtpClient();
//client.Host = "smtp.qq.com";
//client.Port = 25;
//client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
//client.EnableSsl = true;
//client.UseDefaultCredentials = false; client.Credentials = new System.Net.NetworkCredential("邮箱帐号@xx.com", "授权码");
}
catch (Exception ex)
{
throw ex;
}
}
try
{
System.Net.Mail.MailMessage Message = new System.Net.Mail.MailMessage();
Message.SubjectEncoding = System.Text.Encoding.UTF8;
Message.BodyEncoding = System.Text.Encoding.UTF8;
Message.Priority = System.Net.Mail.MailPriority.High; Message.From = new System.Net.Mail.MailAddress("邮箱帐号@xx.com", "张三");
//添加邮件接收人地址
string[] receivers = Receiver.Split(new char[] { ',' });
Array.ForEach(receivers.ToArray(), ToMail => { Message.To.Add(ToMail); }); Message.Subject = Subject;
Message.Body = content;
Message.IsBodyHtml = true;
client.Send(Message);
}
catch (Exception ex)
{
throw ex;
}
}
}
上面的邮箱帐号正常输入,后面必须填写授权码,否则就会提示, 不允许使用邮箱名称。 服务器响应为:authentication is required,163 smtp13,EcCowACXmXrVFtBa20jvDQ--.25857S3 1523586773
如果用户没有开启授权码,还是原先的用户密码的方式,邮箱不可用。 服务器响应为:User has no permission
服务器响应为:DT:SPM 163 smtp13,EcCowAAHf28_ENBawarsDQ--.43148S3 1523585089,please see http://mail.163.com/help/help_spam_16.htm?ip=xx.xx.xx.xx&hostid=smtp13&time=1523585089 这是第三个错误,因为邮件被拦截导致,你的右键标题和内容要正规,我做了个测试 右键的标题为 “title” 报错,改为“工作汇报”,邮件发送成功,而且这个错误还跟天气有关,开个玩笑,有时候就是莫名其妙的出现,一会就好了
C# QQ & 163 邮件发送的更多相关文章
- javamail发送邮件,支持yahoo,google,163.com,qq.com邮件发送
https://www.iteye.com/blog/fangyunfeng-1847352 https://blog.csdn.net/weixin_38465623/article/details ...
- asp.net 163邮件发送
<table id="> <tr> <td style="width: 393px"> 收信:<asp:TextBox ID=. ...
- Selenium+Python之163邮件发送
今晚写了一个163邮箱登录的脚本,由于不停的访问163登录主页导致直接访问163邮箱主页登录需要输入验证码,因为无法获取到验证码,就这导致直接访问主页登录脚本不可行,为了绕过验证码,现在先访问hao1 ...
- 技术笔记:Indy IdSMTP支持腾讯QQ邮箱邮件发送
1.腾讯QQ邮箱的授权码问题 因为腾讯邮箱折腾了个底朝天,其要搞什么授权码登录第三方客户端,否则会报这个错误: 'Error: 请使用授权码登录.详情请看: http://service.mail.q ...
- TP5实现邮件发送(PHP 利用QQ邮箱发送邮件「PHPMailer」)
在 PHP 应用开发中,往往需要验证用户邮箱.发送消息通知,而使用 PHP 内置的 mail() 函数,则需要邮件系统的支持. 如果熟悉 IMAP/SMTP 协议,结合 Socket 功能就可以编写邮 ...
- C# 如何实现邮件发送
调用发送 try { P2BEmail email = new P2BEmail(); email.fromEmail = txtfromEmail.Text; // QQ邮箱 email.fromP ...
- Django之邮件发送
settings.py #settings 添加如下配置进行邮件发送 #邮件服务器 EMAIL_HOST = "smtp.qq.com" #邮件发送的端口 EMAIL_PORT = ...
- php使用CI发送qq和163邮件
1.需求 发送邮件 2.介绍 使用CI框架的email类库发送邮件,这里演示QQ和163 3.163使用教程 a.先去163邮件开启smtp邮件. b.在CI的控制器里写下面的代码 $this-> ...
- java邮件发送 qq与163邮箱互发和qq和163邮箱发送其他邮箱实例
研究了近一天的时间,通过查阅相关资料,终于对java发送邮件的机制,原理有了一点点的理解,希望能够帮到大家! 1.首先要向你的项目里导入1个jar包:mail-1.4.4.jar即可(实现qq和163 ...
随机推荐
- python列表操作符
list1=[123,456] list2=[234,234] list1>list2 >>>False#返回False 第一项比较之后直接返回false,第二项不看 #+实现 ...
- 笔记:I/O流-文件操作
Java库中使用 Path 和 Files 类封装了在用户机器上处理文件系统所需要的所有功能,可以使用Paths来获取一个具体的Path对象,来表示具体的路径. 路径 Path表示的是一个目录名序列, ...
- 笔记:Maven 依赖及配置详解
dependencies 配置节,主要用于配置项目依赖的其他包,其子节点 dependency 用来配置具体依赖包,有groupId.artifactId.version.scope等子节点来说明,配 ...
- vuex的学习笔记
什么是Vuex? vuex是一个专门为vue.js设计的集中式状态管理架构.状态?我把它理解为在data中的属性需要共享给其他vue组件使用的部分,就叫做状态.简单的说就是data中需要共用的属性. ...
- RabbitMQ 消息确认与公平调度消费者
一.消息确认 为了确保消息一定被消费者处理,rabbitMQ提供了消息确认功能,就是在消费者处理完任务之后,就给服务器一个回馈,服务器就会将该消息删除,如果消费者超时不回馈,那么服务器将就将该消息重新 ...
- 部署腾讯云(CentOS6.6版本,jdk1.7+tomcat8+mysql)
这是从一个大神哪里学到的,用来留下来用以记录 http://blog.csdn.net/qingluoII/article/details/76053736 只是其中有一个地方,我在学习的时候觉得可以 ...
- Jmeter 多用户同时登陆
在做性能测试的时候,很多情况需要多用户同时登录,下单,那怎么实现多用户的同时登录呢 可以通过CSV Data Set Config组件实现参数化登录 1.新建一个存放用户名和密码的文件, 和jmete ...
- oracle 常用select sql语句
本人认为很实用的几条语句 1)select ... from ...into... 2)insert into ...select ... 3)select ...from ...left join ...
- GLES2学习VBO和VAO的使用
在GLES2中使用VBO和VAO对象,已经简单vs,ps绘制一个三角形. 1. 初始化操作代码,创建VBO.VAO,编译和链接shader program. void DebugApplication ...
- JavaWeb学习笔记九 过滤器、注解
过滤器Filter filter是对客户端访问资源的过滤,符合条件放行,不符合条件不放行,并且可以对目标资源访问前后进行逻辑处理. 步骤: 编写一个过滤器的类实现Filter接口 实现接口中尚未实现的 ...