SMTPC抄送邮件
来源:互联网 发布:如何删除mac上的软件 编辑:程序博客网 时间:2024/06/04 00:51
Smtp发送及抄送邮件
前段时间下载了某园友自己积累的开源类库,正好昨天有个需求需要发下邮件,于是就打算试下这个类库里面的 SmtpServerHelper 。
程序跑起来后,单人发送、附件发送、多人发送都是正常的,不过这个多人发送的时候,邮件的收件人栏只会显示第一个收件人的信箱地址,不会再显示其他人的信箱地址,也就是如果自己不是第一个收件人,信箱地址明显就是错误的,一看源码:
SendBufferstr += "To:=?" + mailMessage.Charset.ToUpper() + "?B?" + Base64Encode((string)mailMessage.Recipients[0]) + "?=" + "<" + (string)mailMessage.Recipients[0] + ">" + CRLF;
原来这里没有遍历所有收件人,只是单纯的获取收件人集合的第一个显示出来。
另外还有一点就是没有抄送和密送功能。好吧,我们就在这个基础上做小小修改就可以解决这2个问题:
我们把上述代码做如下修改:
//发件人,支持多个发件人显示
SendBufferstr += "To:";
for (int i = 0; i < mailMessage.Recipients.Count; i++)
{
SendBufferstr += "=?" + mailMessage.Charset.ToUpper() + "?B?" + Base64Encode((string)mailMessage.Recipients[i]) + "?=" + "<" + (string)mailMessage.Recipients[i] + ">,";
}
SendBufferstr += "To:";
for (int i = 0; i < mailMessage.Recipients.Count; i++)
{
SendBufferstr += "=?" + mailMessage.Charset.ToUpper() + "?B?" + Base64Encode((string)mailMessage.Recipients[i]) + "?=" + "<" + (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 < mailMessage.CCs.Count; i++)
{
SendBuffer[i] = "RCPT TO:<" + (string)mailMessage.CCs[i] + ">" + CRLF;
}
if (!Dialog(SendBuffer, "抄送人地址错误")) return false;
}
{
SendBuffer = new string[mailMessage.CCs.Count];
for (int i = 0; i < mailMessage.CCs.Count; i++)
{
SendBuffer[i] = "RCPT TO:<" + (string)mailMessage.CCs[i] + ">" + CRLF;
}
if (!Dialog(SendBuffer, "抄送人地址错误")) return false;
}
这就是给抄送人发邮件,但光有这个还不行,因为抄送人是收到了,但抄送人地址栏仍然不会显示出来;
if (mailMessage.CCs != null && mailMessage.CCs.Count > 0)
{
SendBufferstr += "Cc:";
for (int i = 0; i < mailMessage.CCs.Count; i++)
{
SendBufferstr += "=?" + mailMessage.Charset.ToUpper() + "?B?" + Base64Encode((string)mailMessage.CCs[i]) + "?=" + "<" + (string)mailMessage.CCs[i] + ">,";
}
SendBufferstr += CRLF;
}
{
SendBufferstr += "Cc:";
for (int i = 0; i < mailMessage.CCs.Count; i++)
{
SendBufferstr += "=?" + mailMessage.Charset.ToUpper() + "?B?" + Base64Encode((string)mailMessage.CCs[i]) + "?=" + "<" + (string)mailMessage.CCs[i] + ">,";
}
SendBufferstr += CRLF;
}
其实,就是将发送人的标志:"To"改成"Cc"就可以了;密送这里就不做描述了,因为密送是不用显示密送收件人的,所以上面这段就不需要了。
阅读全文
0 0
- SMTPC抄送邮件
- python发送、抄送邮件
- C# 邮件的发送,抄送
- C# 群发邮件 (密送、抄送)
- Exchange 2007 实现邮件自动抄送
- Linux 发送邮件,抄送+附件,多收件人
- C# 群发邮件 (密送、抄送) .
- web的邮件抄送和密送
- golang发送邮件(抄送,暗送,附件)
- 邮件发送技巧:TO, CC, BCC(收件人、抄送、密送)
- java 发邮件 简化JavaMail Commons-Email 抄送
- 利用Oracle的UTL_SMTP包发邮件设置抄送
- java实现邮件抄送,密送,多个附件发送
- .net jMail邮件发送(含抄送、密送、多发、日志记录)
- java实现 邮件抄送,密送,多个附件 发送
- Javamail实现给多人发送、抄送邮件
- java发送邮件,多人单人发送,抄送,密送,附件
- 邮件中的抄送和密送的区别
- JSch
- git 在android studio中重新关联远程仓库地址的方法
- DOM与HTML DOM的区别与联系
- TensorFlow 读取CSV数据代码实现
- poj 1328 Radar Installation(贪心,线段重叠)
- SMTPC抄送邮件
- CSS属性margin负值与float效果浅谈
- Linux基础(六)
- (配置环境问题)svn插件和eclipse 整合不成功
- java中equals的注意事项
- 高级排序算法
- ANTLR4在windows上的安装(Python3版)
- Android通用数据适配器源码CommonAdapter
- 08,Lua table构造式