关于smtp发信的收件人to cc和bcc
首先,了解一点,发一封信,包含smtp协议部分和信体部分。
协议部分,比如sent from,rcpt to等命令
信体中则才包含from,to,cc等头部。比如我们用foxmail收到一封信,你在foxmail里看到的这封信的所有内容就是信体部分,包含发件人,收件人,抄送,标题等。
当一封信有多个收件人,包含to,cc和bcc,smtp协议首先会把所有的收件人逐个进行rcpt to,然后信体部分包含to和cc的头部(注意不包含bcc的头部,这也是为什么信体中看不到暗送收件人的原因)
只有被rcpt to的收件人才会收到信件。
举个例子
sender:send@dyang.com
to1:to1@dyang.com
cc1:cc1@dyang.com
bcc1:bcc1@dyang.com
这封信要被发出去,步骤是这样的:
1.smtp协议进行rcpt to命令,对象为所有收件人,to1@dyang.com,cc1@dyang.com,bcc1@dyang.com
2.信体部分,加上几个头部
to:to1@dyang.com
cc:cc1@dyang.com
注意不会填加bcc头部。
3.然后加载信件主体部分再发出去。
4.收件人收信。因为收件人看到的信件是信体部分,所有看不到bcc的收件人。这样达到了暗送的目的。
# coding=utf-8
import smtplib
import random
from email.MIMEMultipart import MIMEMultipart
from email.MIMEBase import MIMEBase
from email.MIMEText import MIMEText
from email.Utils import COMMASPACE, formatdate
from email import Encoders
import os
def sendMail(fromadd,to,cc,bcc, subject, text, files = [],server = " localhost " ):
fro = fromadd
msg = MIMEMultipart()
print ' FROM: ' ,fro
msg[ ' From ' ] = fro
toAll = []
if to[0]:
print " To: " ,to
msg[ ' To ' ] = COMMASPACE.join(to)
[toAll.append(i) for i in to]
if cc[0]:
print ' CC: ' ,cc
msg[ ' Cc ' ] = COMMASPACE.join(cc)
[toAll.append(i) for i in cc]
if bcc[0]:
print " Bcc " ,bcc
[toAll.append(i) for i in bcc]
msg[ ' Date ' ] = formatdate(localtime = True)
msg[ ' Subject ' ] = subject
msg.attach(MIMEText(text))
for file in files:
part = MIMEBase( ' application ' , " octet-stream " )
part.set_payload( open(file, " rb " ).read() )
Encoders.encode_base64(part)
part.add_header( ' Content-Disposition ' , ' attachment; filename="%s" ' % os.path.basename(file))
msg.attach(part)
smtp = smtplib.SMTP(server)
# smtp.set_debuglevel(1)
smtp.sendmail(fro,toAll,msg.as_string())
smtp.close()
if __name__ == ' __main__ ' :
server = ' 10.226.55.3 '
i = 0
# while True:
for id in xrange( 1 ):
a = random.randint( 1 , 2 )
try :
fromAdd = ' someone%s@di.com ' % a
toAdd = [ ' yangdi1@di.com ' ,]
ccAdd = [ ' dyang1@cavan.com ' , ' dyang2@cavan.com ' ]
bccAdd = [ ' yangdi@di.com ' ,]
file = [ ' c:\\esg.7z ' ,]
sendMail(fromAdd,toAdd,ccAdd,toAll, ' test ' , ' test ' ,file,server)
except Exception,e:
print e
i = 0
print i + 1
i += 1
print ' done! '
转载于:https://www.cnblogs.com/yd1227/archive/2011/01/19/1939096.html
关于smtp发信的收件人to cc和bcc相关推荐
- 配置SMTP发信认证
配置SMTP发信认证 问题 沿用练习一.二.三,根据现有的Postfix服务配置,基本上任何人都可以连接到邮件服务器,随意提交电子邮件.为了提高邮件系统的安全性.减少垃圾邮件,本案例要求针对SMTP发 ...
- qq邮箱的发件服务器怎么设,如何利用QQ邮箱实现网站SMTP发信,详细邮箱的配置教程...
注意事项 QQ邮箱必须开通一个月以上,新邮箱是无法开启SMTP功能的. QQ邮箱配置教程 登陆QQ邮箱 我们可以通过QQ主面板的按钮进入,也可以通过QQ邮箱的网站(mail.qq.com)进行登陆: ...
- qq邮箱服务器发信怎么配置,WordPress网站实现使用QQ邮箱作为SMTP发信服务器配置教程...
一般WordPress网站都需要进行邮件发送,比如常见的找回密码.验证码等功能,我们经常会推荐使用SMTP发送邮件.今天小编就想跟大家讨论一下WordPress网站实现使用QQ邮箱作为SMTP发信服务 ...
- 万网主机不支持php,万网等虚拟主机不能SMTP发信的解决方案
万网等虚拟主机不能SMTP发信的解决方案 大多数虚拟主机如万网等都禁用了WordPress默认使用的PHP mail()发信函数,那么唯一的选择就是SMTP发信了,当然SMTP发信的好处是基本不会被邮 ...
- GO(golang)语言使用SMTP发送电子邮件,简单和复杂带附件cc,bcc
转https://studygolang.com/articles/2098 核心代码:smtp.SendMail(host, auth, user, send_to, msg),auth := sm ...
- 万网php发不了邮件,万网等虚拟主机不能SMTP发信的解决方案
大多数虚拟主机如万网等都禁用了WordPress默认使用的PHP mail()发信函数,那么唯一的选择就是SMTP发信了,当然SMTP发信的好处是基本不会被邮件服务商归类为垃圾邮件.由于stream_ ...
- smtp发信出现的问题
使用smtp发信,smtp服务器是QQ的,分别向sohu.cn,126.com,163.com邮箱发信,sohu邮箱能够很快收到,显示在"收件箱",而126.163都被放在垃圾箱, ...
- python群发邮件 to单独指定_python:如何发送邮件与TO,CC和BCC?
电子邮件头与smtp服务器无关.发送电子邮件时,只需将CC和BCC收件人添加到收件人.对于CC,将它们添加到CC头. toaddr = 'buffy@sunnydale.k12.ca.us' cc = ...
- EMAIL 如何发送给多人,如何CC,BCC?
如何发送给多人,如何CC,BCC? ANSWER: (此答案由SnifferPro监听OUTLOOK发送多人邮件分析出来的) 同一封信发送/抄送给多人,在MAIL FROM:<...> 后 ...
最新文章
- (Mirage系列之六)在Mirage里使用Collection
- 【综述】MV3D-Net、AVOD-Net 用于自动驾驶的多视图3D目标检测网络
- ibatis中isEquals、isNotEmpty的用法
- 隐藏html表格边框显示,table显示所有边框 table的边框怎么显示不出来
- Android事件分发机制之ACTION_DOWN
- apache camel_使用Java的Apache Camel入门
- ***站长自述挂马经历 提醒挂马者回头是岸
- 每天进步一点点《ML - Sklearn库简单学习》
- [原創]全面的權限控制方法(功能權限+數據權限+特殊權限(行,列))
- Android Studio打包Android Library为jar方案
- 《Spring In Action(第4版)》阅读总结(四)渲染Web视图
- Javascript-逻辑运算符()
- powershell目录带空格_精心构造的PS1文件名导致Powershell命令执行
- HTML:select、option中设置默认值,且默认值不在下拉框中出现
- gambit多面整合
- kubernetes多节点集群搭建过程分析
- 写一篇简单的 IEEE 会议论文
- win10 查看笔记本电池循环次数
- css 网站大背景(按比例缩放背景图片)
- Angular /Angular cli安装教程