python发邮件抄送多人,python3 发送邮件

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: