python发送带附件的邮件

2023-01-31 05:01:26 发送 邮件 附件

 

来源:Http://snipperize.todayclose.com/snippet/py/Send-email-with-p_w_upload--53762/

Send email with p_w_upload

  1. import smtplib 
  2. from email.MIMEMultipart import MIMEMultipart 
  3. from email.MIMEBase import MIMEBase 
  4. from email.MIMEText import MIMEText 
  5. from email.Utils import COMMASPACE, fORMatdate 
  6. from email import Encoders 
  7. import os 
  8.  
  9. def sendMail(to, subject, text, files=[],server="localhost"): 
  10.     assert type(to)==list 
  11.     assert type(files)==list 
  12.     fro = "Expediteur <expediteur@mail.com>" 
  13.  
  14.     msg = MIMEMultipart() 
  15.     msg['From'] = fro 
  16.     msg['To'] = COMMASPACE.join(to) 
  17.     msg['Date'] = formatdate(localtime=True) 
  18.     msg['Subject'] = subject 
  19.  
  20.     msg.attach( MIMEText(text) ) 
  21.  
  22.     for file in files: 
  23.         part = MIMEBase('application', "octet-stream") 
  24.         part.set_payload( open(file,"rb").read() ) 
  25.         Encoders.encode_base64(part) 
  26.         part.add_header('Content-Disposition', 'p_w_upload; filename="%s"' 
  27.                        % os.path.basename(file)) 
  28.         msg.attach(part) 
  29.  
  30.     smtp = smtplib.SMTP(server) 
  31.     smtp.sendmail(fro, to, msg.as_string() ) 
  32.     smtp.close() 
  33.  
  34.  
  35. sendMail( 
  36.         ["destination@dest.kio"], 
  37.         "hello","cheers", 
  38.         ["photo.jpg","memo.sxw"] 
  39.     ) 

 

相关文章