python发邮件抄送多人,python3 发送邮件
前段时间下载了一个园友积累的开源类库。就在昨天,有发邮件的需求,于是打算试试这个类库里的SmtpServerHelper。
程序运行后,单人发送、附件发送、多人发送都正常。但是这种多人发送时,邮件的收件人一栏只会显示第一个收件人的邮箱地址,不会显示其他人的邮箱地址。就是如果你不是第一个收件人,邮箱地址明显是错的。当您查看源代码时:
SendBufferstr=To:=?邮件消息。Charset.ToUpper()?“乙,”Base64Encode((字符串)邮件消息。收件人[0])?= CRLF;
原来这里并没有遍历所有的收件人,只是显示了收件人集合中的第一个收件人。
还有一点就是没有抄送和密件抄送功能。好吧,我们可以在此基础上稍作修改来解决这两个问题:
我们将上述代码修改如下:
//sender,支持多个发件人显示SendBufferstr= To:;
for(inti=0;我
{
SendBufferstr==?邮件消息。Charset.ToUpper()?“乙,”Base64Encode((字符串)邮件消息。收件人[i])?= ,;
}
需要注意的是,用Base64编码的是用来显示收件人姓名的,中间的是用来显示收件人的邮件地址的。
抄送功能,其实这个抄送,没什么特别的,因为它的发送和正常发送是一样的,除了显示抄送的时候不一样:
if(mailMessage。CCs!=nullmailMessage。CCs计数0)
{
send buffer=new string[mail message。CCs . Count];
for(inti=0;我
{
send buffer[I]= RCPTTO: CRLF;
}
如果(!Dialog(SendBuffer,抄送地址错误))返回false;
}
这是给CC发邮件,但是光有这个还不够,因为CC已经收到了,但是CC的地址栏还是不会显示;
if(mailMessage。CCs!=nullmailMessage。CCs计数0)
{
SendBufferstr= Cc:;
for(inti=0;我
{
SendBufferstr==?邮件消息。Charset.ToUpper()?“乙,”Base64Encode((字符串)邮件消息。CCs[i])?= ,;
}
SendBufferstr=CRLF;
}
其实把发件人的logo:‘收件人’改成‘抄送’就够了;这里就不描述密送了,因为密送是不需要出示密送收件人的,上面那段就没必要了。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。