Python网络编程:E-mail服务(八) 实现抄送和密送功能
来源:互联网 发布:java servlet菜鸟 编辑:程序博客网 时间:2024/06/10 02:15
简介
本文介绍如何通过smtp模块实现邮件的抄送和密送功能。
抄送功能实现
在发送邮件时,除了发送给相关的责任人,有时还需要知会某些人。这时就需要在邮件里指定抄送人员列表。相关实现如下:
import smtplibfrom email.mime.multipart import MIMEMultipartfrom email.mime.text import MIMETextimport osFROMADDR = "myaddr@server.com"PASSWORD = 'foo'TOADDR = ['toaddr1@server.com', 'toaddr2@server.com']CCADDR = ['ccaddr1@server.com', 'ccaddr2@server.com']# Create message container - the correct MIME type is multipart/alternative.msg = MIMEMultipart('alternative')msg['Subject'] = 'Test'msg['From'] = FROMADDRmsg['To'] = ', '.join(TOADDR)msg['Cc'] = ', '.join(CCADDR)# Create the body of the message (an HTML version).text = """Hi this is the body"""# Record the MIME types of both parts - text/plain and text/html.body = MIMEText(text, 'plain')# Attach parts into message container.msg.attach(body)# Send the message via local SMTP server.s = smtplib.SMTP('server.com', 587)s.sendmail(FROMADDR, TOADDR + CCADDR, msg.as_string())s.quit()这里需要注意的是,需要将所以发送和抄送人员以列表的形式,传送给sendmail(from_addr, to_addrs, msg, mail_options=[], rcpt_options=[])函数的to_addrs参数。否则CC功能失效。
实现BCC功能
用户如果需要实现密送(BCC)功能,和上面介绍的抄送功能类似。参考代码实现:
oaddr = 'buffy@sunnydale.k12.ca.us'cc = ['alexander@sunydale.k12.ca.us','willow@sunnydale.k12.ca.us']bcc = ['chairman@slayerscouncil.uk']fromaddr = 'giles@sunnydale.k12.ca.us'message_subject = "disturbance in sector 7"message_text = "Three are dead in an attack in the sewers below sector 7."message = "From: %s\r\n" % fromaddr + "To: %s\r\n" % toaddr + "CC: %s\r\n" % ",".join(cc) + "Subject: %s\r\n" % message_subject + "\r\n" + message_texttoaddrs = [toaddr] + cc + bccserver = smtplib.SMTP('smtp.sunnydale.k12.ca.us')server.set_debuglevel(1)server.sendmail(fromaddr, toaddrs, message)server.quit()
总结
TO, CC, BCC仅在文本头存在区别,在SMTP级别来看,TO, CC, BCC都是接收者。因此sendmail( )函数的to_addrs必须是所有接收者的列表。
0 0
- Python网络编程:E-mail服务(八) 实现抄送和密送功能
- Python网络编程:E-mail服务(一)原理篇
- Python网络编程:E-mail服务(三)MIME解析
- Python网络编程:E-mail服务(四) 编写传统邮件
- Python网络编程:E-mail服务(五)深入理解email模块的message和MIME类
- Python网络编程:E-mail服务(二)传统E-mail格式
- Python网络编程:E-mail服务(九) 发送HTML格式邮件
- Python学习 网络编程(四) E-Mail
- python实现电子邮件(E-mail)发送
- 邮箱中的抄送和密送
- web的邮件抄送和密送
- 利用JavaMail API实现发送E-mail的功能
- python(八)socket网络编程
- 邮件中的抄送和密送的区别
- python学习八:网络编程初探
- 工作流系统之四十 抄送功能的实现
- Windows网络编程基础 ---1 (转快乐魔导师E-Mail: euho@sina.com)
- python发送、抄送邮件
- (十)play之yabe项目【测试】
- RAID技术
- 2015年第五届蓝桥杯预赛题目JAVA软件开发高职高专组等额本金
- 计算机基础【1】原码、反码、补码。
- Redis、Sentinel集群环境搭建
- Python网络编程:E-mail服务(八) 实现抄送和密送功能
- Halcon 与 OpenCV 图像数据类型转换
- WebDriver遇到Element is not currently visible and so ...解决
- 2015年第五届蓝桥杯预赛题目JAVA软件开发高职高专组猜字母
- Linux生成core dump文件
- 算法训练 2的次幂表示 (java版)
- java并发编程学习:同步容器与并发容器
- 2015年第五届蓝桥杯预赛题目JAVA软件开发高职高专组大衍数列
- 期末考试之分等级 (sdut oj)