这是关于c#发送电子邮件(SMTP)的技术笔记,以”简报“形式呈现。

因为最后成功通过outlook.com发送了邮件,所以,我觉得还是有必要 记录一下其中的要点。

一、技术核心

.net Framework 提供的两个类:SmtpClient和MailAddress

前者负责连接到服务器并且发送邮件,后者构成邮件的内容。

详细请参考:

二、多个接收人

观察网易邮箱,多个接收人使用的是分号(【,】)分割,但是直接传递参数到【MailAddress.To】的【Add()】方法却会出现解析异常。

解决方案两个:

微软方面在这个方法的注释上说,多个接收人用逗号分割。

自己拆分成数组,然后循环【Add()】

我自己尝试第一个方案的时候,赶上了126邮箱认为我发广告屏蔽了我账号stmp。所以,我后来成功的时候是使用的第二个方案。

三、使用outlook.com提供的SMTP

3.1 设置

https://support.office.com/zh-cn/article/outlook-com-%E7%9A%84-pop%E3%80%81imap-%E5%92%8C-smtp-%E8%AE%BE%E7%BD%AE-d088b986-291d-42b8-9564-9c414e2aa040

3.2 端口号不是默认的25,而是587

没有添加端口的时候,返回的异常提示是:

SMTP 服务器要求安全连接或客户端未通过身份验证。 服务器响应为:5.7.57 SMTP; Client was not authenticated to send anonymous mail during MAIL FROM [AM0PR02CA0048.eurprd02.prod.outlook.com].

添加了端口之后,仍然没有通过,异常也变了。

SMTP 服务器要求安全连接或客户端未通过身份验证。 服务器响应为:5.7.57 SMTP; Client was not authenticated to send anonymous mail during MAIL FROM [AM0PR01CA0034.eurprd01.prod.exchangelabs.com]

于是进入下一个环节:

3.3 关于STARTTLS

看到微软outlook强调:

SMTP 加密方法 STARTTLS

所以,就怀疑是跟STARTTLS有关。

根据下面这篇文章好像找到了 添加 这个选项的办法:

也就是说这一行:

添加了之后问题仍然存在,并且异常和服务器返回的信息都和以前一样。

后来发现,还需要开启SSL

.EnableSsl = true;

上面的链接里面已经是这么用的,但是当时我没看到,在搜到了这个问题的时候才注意到。

https://q.cnblogs.com/q/83815/

另外,测试的时候,UseDefaultCredentials选项开启和关闭都能发送成功。

完。

关于找一找教程网

本站文章仅代表作者观点,不代表本站立场,所有文章非营利性免费分享。

本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章,希望广大程序员努力学习,让我们用科技改变世界。

[C#发送电子邮件(SMTP)及outlook.com账号之概要]http://www.zyiz.net/tech/detail-93656.html

net core邮件服务器,C#发送电子邮件(SMTP)及outlook.com账号之概要相关推荐

  1. 黑客滥用FBI邮件服务器大规模发送虚假威胁警报,不安全编码是元凶

     聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 摘要 身份不明的黑客利用美国联邦调查局 (FBI) 的一台邮件服务器大规模发送垃圾邮件,发出虚假警报,谎称一场网络攻击正在发生.声称为此事负责的 ...

  2. Spring通过Gmail SMTP服务器MailSender发送电子邮件

    Spring提供了一个有用的"org.springframework.mail.javamail.JavaMailSenderImpl"类,通过JavaMail API 简化邮件发 ...

  3. 腾讯企业 html邮件模板,用腾讯企业邮做为邮件服务器来发送通知邮件的操作步骤...

    之前写过一篇"设置QQ邮箱为发送邮件服务器的详细带图步骤",但是用QQ邮箱做发件服务还是不那么方便.天兴工作室自己用的是腾讯企业邮,设置起来很方面.唯一的限制就是得有自己的域名,再 ...

  4. php邮件程序,PHP发送电子邮件(Email)

    PHP mail()函数用于在PHP中发送电子邮件. 您可以使用PHP mail()函数来发送短信,HTML消息和附件与消息. PHP mail()函数 语法 $to:指定邮件的接收者或接收者. 接收 ...

  5. android studio发邮件功能,Android发送电子邮件

    电子邮件是通过电子方式从一个系统用户通过网络分发给一个或多个收件人的邮件. 在开始电子邮件活动之前,您必须意图了解电子邮件功能,Intent在应用程序或应用程序外部将数据从一个组件传输到另一个组件. ...

  6. php 发邮件附件,php发送电子邮件附件

    如何发送电子邮件与简历附件, 我从这个地方采取片段Click here 在这个网站上,片段工作正常, 即使我收到邮件,但附件不起作用,与0kb不同的是 大小文件,该片段中的问题是什么, functio ...

  7. 邮件服务器 sendmail发送附件

    如何安装这个sendmail,可以参考https://www.jianshu.com/p/d111e059bf8d 如果发送附件,还需要安装sharutils,这个软件包中有uuencode命令,可以 ...

  8. ruby 发送post请求_使用Ruby发送电子邮件

    ruby 发送post请求 Ruby发送电子邮件 (Ruby sending email) Sending emails and routing email among mail servers ar ...

  9. 邮件服务器邮件群发几个技巧

    电子商务的火热,促进了网络营销的发展,邮件营销在网络营销的地位不可忽视,怎样才能更高效实现邮件营销呢?邮件群发是实现高效营销的手段之一.做过网络营销的都知道,邮件群发的效果好不好,不仅和工具有关,更多 ...

最新文章

  1. OKHTTP3源码和设计模式(下篇)
  2. python3基础知识梳理(一)
  3. html微信窗口阻止滚动条,解决微信浏览器页面可以随意拉伸,导致页面内部滚动条滚动体验不好的问题...
  4. 三相不平衡的原因、危害以及解决措施
  5. c#中tcp协议服务器同时接收客户端的数据
  6. 数据标准化 - scale() - Python代码
  7. 资源打包Assetbundle .
  8. 安卓系统的文件管理神器Solid Explorer(v2.2)
  9. LeetCode(8):字符串转整数(atoi)
  10. 软件poc测试方案,华为fusioncloud桌面云解决方案5.3poc测试方案v1.0
  11. C语言编程求3*3矩阵对角线元素之和
  12. oracle函数translate,oracle中Translate()函数用法
  13. 小话设计模式(十三)职责链模式
  14. golang源代码阅读,sync系列-WaitGroup
  15. 塔米狗分享|2022年企业并购创新的融资方式有哪些
  16. 笃行务实 布萌区块链选择数字资产作为区块链行业突破口
  17. 关于SSD写放大问题
  18. 对联盟链的零星想法,欢迎指正交流
  19. 主板常见故障维修24例
  20. linux 防火墙 功能点,功能点(Funciton Point FP)估算法(三) 调整因子

热门文章

  1. centos 一键搭建lnmp环境
  2. steam搬砖项目:最稳定的副业,无脑搬运
  3. 概率论(Probability theory)
  4. Linux版本的fluent使用教程,FLUENT菜鸟入门-不可不知的50个经典问题
  5. 九阳豆浆机的命名规则
  6. CentOS系统时间校对
  7. BIGEMAP如何使用高程DEM建立三维地图模型(Arcgis ArcScene)
  8. 微信公众平台多客服系统怎么使用?
  9. ISP与DSP的区别
  10. Unity3D中XR平台了解