DarkMatter in Cyberspace
  • Home
  • Categories
  • Tags
  • Archives

Python发送邮件时的抄送问题


python使用smtp模块的sendmail()方法发送邮件时,并不区分是“发送给”、“抄送给”还是“密送给”,都一视同仁的放在该方法的第二个参数中,但邮件头(也就是收到的邮件中头部“收件人”、“抄送”等信息)却是由第三个参数决定,也就是说邮件的表现形式是在邮件头里定义的,所以如果想“密送”给某人,只要把他的地址加在第二个参数里,而不要在邮件头里出现就行了。下面是代码实例。

import smtplib, ConfigParser, datetime 
from email.mime.text import MIMEText 
from email.mime.multipart import MIMEMultipart 
config = ConfigParser.ConfigParser() 
config.read('build.cfg') 
try: 
    mail_server = smtplib.SMTP(config.get('mail','server_addr')) 
    mail_server.set_debuglevel(1) 
    mail_server.login(config.get('mail','username'), config.get('mail','password')) 
except Exception,e: 
    exit() 
from_addr = config.get('mail','from_addr') 
to_addr = config.get('mail','to_addr') 
copyto_addr = config.get('mail','copyto_addr') 
sending_date = datetime.datetime.now().strftime("%d/%m/%Y %H:%M") 
message_body = '<html><body>aa</body></html>' 
msg = MIMEMultipart() 
msg.add_header('From',from_addr) 
msg.add_header('To',to_addr) 
msg.add_header('Cc',copyto_addr) 
msg.add_header('Subject',config.get('mail','subject')) 
msg.add_header('Date',sending_date) 
msg.attach(MIMEText(message_body, 'html')) 
mail_server.sendmail(from_addr, to_addr.split()+copyto_addr.split(), msg.as_string()) 
mail_server.quit()

在代码所在文件夹下写一个build.cfg文件,内容如下:

[mail] 
server_addr: 124.127.106.5 
username: lichao1 
password: aba... 
from_addr: LiChao<lichao1@boco.com.cn> 
to_addr: lichao1@boco.com.cn zhaohuaqiao_kkk@boco.com.cn 
copyto_addr: leechau@126.com liu_xin_kkk@boco.com.cn 
subject: BVT Reports


Published

Jan 19, 2011

Last Updated

Jan 19, 2011

Category

Tech

Tags

  • 抄送 1
  • copyto 1
  • Python 136
  • smtp 2
  • 邮件 2

Contact

  • Powered by Pelican. Theme: Elegant by Talha Mansoor