前段时间下载了某园友自己积累的开源类库,正好昨天有个需求需要发下邮件,于是就打算试下这个类库里面的 SmtpServerHelper 。

程序跑起来后,单人发送、附件发送、多人发送都是正常的,不过这个多人发送的时候,邮件的收件人栏只会显示第一个收件人的信箱地址,不会再显示其他人的信箱地址,也就是如果自己不是第一个收件人,信箱地址明显就是错误的,一看源码:

SendBufferstr += "To:=?" + mailMessage.Charset.ToUpper() + "?B?" + Base64Encode((string)mailMessage.Recipients[0]) + "?=" + "" + CRLF;

原来这里没有遍历所有收件人,只是单纯的获取收件人集合的第一个显示出来。

另外还有一点就是没有抄送和密送功能。好吧,我们就在这个基础上做小小修改就可以解决这2个问题:

我们把上述代码做如下修改:

//发件人,支持多个发件人显示SendBufferstr += "To:";

for (int i = 0; i

{

SendBufferstr += "=?" + mailMessage.Charset.ToUpper() + "?B?" + Base64Encode((string)mailMessage.Recipients[i]) + "?=" + ",";

}

需要注意的是,用Base64编码的是用来显示收件人的名称,""中间用来显示收件人信箱地址。

抄送功能,其实这个CC,没有什么特别之处,因为它的发送和正常的发送是一样的,只是在显示抄送人的时候不同而已:

if (mailMessage.CCs != null && mailMessage.CCs.Count > 0)

{

SendBuffer = new string[mailMessage.CCs.Count];

for (int i = 0; i

{

SendBuffer[i] = "RCPT TO:" + CRLF;

}

if (!Dialog(SendBuffer, "抄送人地址错误")) return false;

}

这就是给抄送人发邮件,但光有这个还不行,因为抄送人是收到了,但抄送人地址栏仍然不会显示出来;

if (mailMessage.CCs != null && mailMessage.CCs.Count > 0)

{

SendBufferstr += "Cc:";

for (int i = 0; i

{

SendBufferstr += "=?" + mailMessage.Charset.ToUpper() + "?B?" + Base64Encode((string)mailMessage.CCs[i]) + "?=" + ",";

}

SendBufferstr += CRLF;

}

其实,就是将发送人的标志:"To"改成"Cc"就可以了;密送这里就不做描述了,因为密送是不用显示密送收件人的,所以上面这段就不需要了。

smtplib 抄送邮件_Smtp发送及抄送邮件相关推荐

  1. java 实现邮件的发送, 抄送及多附件

    import javax.activation.DataHandler; import javax.activation.FileDataSource; import javax.mail.*; im ...

  2. C# 邮件的发送,抄送

    // 引入命名空间 using System.Net; using System.Net.Mail; SmtpClient smtp = new SmtpClient(); //实例化一个SmtpCl ...

  3. word合并邮件无法发送html,Word邮件合并批量发送带附件的邮件

    应张老师的需求,修改制作了一个可以批量发送带附件的电子邮件VBA. 目的:给N多人发送电子邮件,而不是抄送模式,并带有对方的称谓. 实现: 用到Word的邮件合并功能,以及调用Outlook发送邮件. ...

  4. php 实现邮件定时发送,PHP实现邮件的自动发送

    这样就可以实现邮件的发送了.结果如下: 如果要实现自动发送邮件的话,那么程序必须能自动的运行.程序在后台自动运行的代码如下:<?php ignore_user_abort(); // 后台运行 ...

  5. python发送html格式邮件,python 发送html格式邮件到qq(示例代码)

    #-*- coding: utf-8 -*- __author__ = 'Alon' __date__ = '2017/8/14 18:38' importsys reload(sys) sys.se ...

  6. phpmailer 私密抄送_PHP电子邮件发送密件抄送

    我知道有一些与此类似的问题,但我无法使其正常运行. 好的,我在一个名为$ emailList的变量中有一个从数据库中获取的电子邮件列表.如果将变量放在该$to部分中,则可以获取代码以从表单发送电子邮件 ...

  7. java实现邮件发送, 抄送及多附件发送

    java实现邮件发送, 抄送及多附件发送 所需的jar包  mailapi.jar和smtp.jar  或  javax-mail-xxx.jar(如javax.mail-1.5.6.jar)  ht ...

  8. python 收发邮件_python发送各类邮件的主要基本方法

    利用python实现基本的邮件发送. 感谢以下博客的整理,本人在学习的同时也做了一些整理 一.相关模块介绍 发送邮件主要用到了smtplib和email两个模块,这里首先就两个模块进行一下简单的介绍: ...

  9. python学习笔记[3]-邮件的发送

    本文摘抄自:http://www.cnblogs.com/xiaowuyi/archive/2012/03/17/2404015.html 一.相关模块介绍 发送邮件主要用到了smtplib和emai ...

  10. SpringBoot邮件发送(抄送、密送、图片、多文件等一应俱全哦)

    人生若只如初见,何事秋风悲画扇. 下班回去听到室友讲到他们项目正在写一个邮件发送,突然手痒写此功能,后来总结形成该文,希望对大家有帮助! 本文非常详细且实用,是不是干货你说了算! 所用:springb ...

最新文章

  1. 36张图详解网络基础知识
  2. C语言实验——求一个3*3矩阵对角线元素之和
  3. 尝试优化骨骼动画计算的意外收获——使用嵌入式汇编对float转int进行优化
  4. 损失函数梯度对比-均方差和交叉熵
  5. goldendb基于mysql_中兴通讯GoldenDB在中信银行信用卡核心应用实践
  6. Swift学习笔记8--Optional Chaining
  7. Hibernate缓存的evict、clear和flush方法
  8. 基于C++的校园一卡通管理系统
  9. 单核CPU破解后量子加密候选算法只需一小时
  10. 等级保护三级和二级有什么区别?
  11. 强化学习笔记:马尔科夫链介绍及基于Python的蒙特卡洛仿真
  12. web网页设计实例作业 :美食坊网站设计——美食坊美食购物主题(15页) HTML+CSS+JavaScript
  13. d3.js学习笔记(5)drag拖拽操作数据
  14. speedoffice(Excel)图片上怎么添加文字
  15. oracle字符集增加生僻字,Oracle SQL一个“生僻字”的优化
  16. mono.dll caused an Access Violation (0xc0000005) in module mono.dll at 0033:e6b552d6.
  17. 计算机 实验室安全准入制度,南京信息工程大学实验室安全准入制度(试行)...
  18. 4.3.5 计算电费
  19. 近期想跳槽的程序员必看!阿里P7级别面试经验总结,使用指南
  20. linux版本的xmind怎么安装教程,Linux下安装脑图软件XMind的步骤

热门文章

  1. ArcGIS无插件加载(无偏移)天地图
  2. 如何通过IP共享文件
  3. Redhat 7.2 安装网卡驱动
  4. validation注解
  5. max计算机什么函数,计算机max函数使用方法
  6. 关于SiamRPN代码的一些要点
  7. 利用牛顿迭代公式开方
  8. 用CSS3画出一个正方体
  9. 移动网络安全_徐州市“移动杯”网络安全技能竞赛 即将开始!
  10. 外卖行业现状分析_2020餐饮外卖行业市场前景及现状分析