python3 发邮件实例(包括:文本、html、图片、附件、SSL、群邮件)

来源:互联网 发布:bj单身日记 知乎 编辑:程序博客网 时间:2024/06/05 18:25
[python]  view plain copy
  1. #!/usr/bin/env python3  
  2. #coding: utf-8  
  3. import smtplib  
  4. from email.mime.text import MIMEText  
  5. from email.header import Header  
  6.   
  7. sender '***'  
  8. receiver '***'  
  9. subject 'python email test'  
  10. smtpserver 'smtp.163.com'  
  11. username '***'  
  12. password '***'  
  13.   
  14. msg MIMEText('你好','plain','utf-8')#中文需参数‘utf-8’,单字节字符不需要  
  15. msg['Subject'Header(subject, 'utf-8' 
  16.   
  17. smtp smtplib.SMTP()  
  18. smtp.connect('smtp.163.com' 
  19. smtp.login(username, password)  
  20. smtp.sendmail(sender, receiver, msg.as_string())  
  21. smtp.quit()  

HTML形式的邮件

[python]  view plain copy
  1. #!/usr/bin/env python3  
  2. #coding: utf-8  
  3. import smtplib  
  4. from email.mime.text import MIMEText  
  5.   
  6. sender '***'  
  7. receiver '***'  
  8. subject 'python email test'  
  9. smtpserver 'smtp.163.com'  
  10. username '***'  
  11. password '***'  
  12.   
  13. msg MIMEText('

    你好

    ','html','utf-8' 
  14.   
  15. msg['Subject'subject  
  16.   
  17. smtp smtplib.SMTP()  
  18. smtp.connect('smtp.163.com' 
  19. smtp.login(username, password)  
  20. smtp.sendmail(sender, receiver, msg.as_string())  
  21. smtp.quit()  

带图片的HTML邮件

[python]  view plain copy
  1. #!/usr/bin/env python3  
  2. #coding: utf-8  
  3. import smtplib  
  4. from email.mime.multipart import MIMEMultipart  
  5. from email.mime.text import MIMEText  
  6. from email.mime.image import MIMEImage  
  7.   
  8. sender '***'  
  9. receiver '***'  
  10. subject 'python email test'  
  11. smtpserver 'smtp.163.com'  
  12. username '***'  
  13. password '***'  
  14.   
  15. msgRoot MIMEMultipart('related' 
  16. msgRoot['Subject''test message'  
  17.   
  18. msgText MIMEText('Some HTML text and an image.

    good!'
    ,'html','utf-8' 
  19. msgRoot.attach(msgText)  
  20.   
  21. fp open('h:\\python\\1.jpg''rb' 
  22. msgImage MIMEImage(fp.read())  
  23. fp.close()  
  24.   
  25. msgImage.add_header('Content-ID''' 
  26. msgRoot.attach(msgImage)  
  27.   
  28. smtp smtplib.SMTP()  
  29. smtp.connect('smtp.163.com' 
  30. smtp.login(username, password)  
  31. smtp.sendmail(sender, receiver, msgRoot.as_string())  
  32. smtp.quit()  
带附件的邮件
[python]  view plain copy
  1. #!/usr/bin/env python3  
  2. #coding: utf-8  
  3. import smtplib  
  4. from email.mime.multipart import MIMEMultipart  
  5. from email.mime.text import MIMEText  
  6. from email.mime.image import MIMEImage  
  7.   
  8. sender '***'  
  9. receiver '***'  
  10. subject 'python email test'  
  11. smtpserver 'smtp.163.com'  
  12. username '***'  
  13. password '***'  
  14.   
  15. msgRoot MIMEMultipart('related' 
  16. msgRoot['Subject''test message'  
  17.   
  18. #构造附件  
  19. att MIMEText(open('h:\\python\\1.jpg''rb').read(), 'base64''utf-8' 
  20. att["Content-Type"'application/octet-stream'  
  21. att["Content-Disposition"'attachment; filename="1.jpg"'  
  22. msgRoot.attach(att)  
  23.           
  24. smtp smtplib.SMTP()  
  25. smtp.connect('smtp.163.com' 
  26. smtp.login(username, password)  
  27. smtp.sendmail(sender, receiver, msgRoot.as_string())  
  28. smtp.quit()  

群邮件

[python]  view plain copy
  1. #!/usr/bin/env python3  
  2. #coding: utf-8  
  3. import smtplib  
  4. from email.mime.text import MIMEText  
  5.   
  6. sender '***'  
  7. receiver ['***','****',……]  
  8. subject 'python email test'  
  9. smtpserver 'smtp.163.com'  
  10. username '***'  
  11. password '***'  
  12.   
  13. msg MIMEText('你好','plain','utf-8' 
  14.   
  15. msg['Subject'subject  
  16.   
  17. smtp smtplib.SMTP()  
  18. smtp.connect('smtp.163.com' 
  19. smtp.login(username, password)  
  20. smtp.sendmail(sender, receiver, msg.as_string())  
  21. smtp.quit()  

各种元素都包含的邮件

[python]  view plain copy
  1. #!/usr/bin/env python3  
  2. #coding: utf-8  
  3. import smtplib  
  4. from email.mime.multipart import MIMEMultipart  
  5. from email.mime.text import MIMEText  
  6. from email.mime.image import MIMEImage  
  7.   
  8. sender '***'  
  9. receiver '***'  
  10. subject 'python email test'  
  11. smtpserver 'smtp.163.com'  
  12. username '***'  
  13. password '***'  
  14.   
  15. Create message container the correct MIME type is multipart/alternative.  
  16. msg MIMEMultipart('alternative' 
  17. msg['Subject'"Link"  
  18.   
  19. Create the body of the message (a plain-text and an HTML version).  
  20. text "Hi!\nHow are you?\nHere is the link you wanted:\nhttp://www.python.org"  
  21. html """\ 
  22.  
  23.    
  24.    
  25.     

    Hi!
     

  26.        How are you?
     
  27.        Here is the link you wanted. 
  28.     

     
  29.    
  30.  
  31. """  
  32.   
  33. Record the MIME types of both parts text/plain and text/html.  
  34. part1 MIMEText(text, 'plain' 
  35. part2 MIMEText(html, 'html' 
  36.   
  37. Attach parts into message container.  
  38. According to RFC 2046, the last part of multipart message, in this case  
  39. the HTML message, is best and preferred.  
  40. msg.attach(part1)  
  41. msg.attach(part2)  
  42. #构造附件  
  43. att MIMEText(open('h:\\python\\1.jpg''rb').read(), 'base64''utf-8' 
  44. att["Content-Type"'application/octet-stream'  
  45. att["Content-Disposition"'attachment; filename="1.jpg"'  
  46. msg.attach(att)  
  47.      
  48. smtp smtplib.SMTP()  
  49. smtp.connect('smtp.163.com' 
  50. smtp.login(username, password)  
  51. smtp.sendmail(sender, receiver, msg.as_string())  
  52. smtp.quit()  

基于SSL的邮件

[python]  view plain copy
  1. #!/usr/bin/env python3  
  2. #coding: utf-8  
  3. import smtplib  
  4. from email.mime.text import MIMEText  
  5. from email.header import Header  
  6. sender '***'  
  7. receiver '***'  
  8. subject 'python email test'  
  9. smtpserver 'smtp.163.com'  
  10. username '***'  
  11. password '***'  
  12.   
  13. msg MIMEText('你好','plain','utf-8')#中文需参数‘utf-8’,单字节字符不需要  
  14. msg['Subject'Header(subject, 'utf-8' 
  15.   
  16. smtp smtplib.SMTP()  
  17. smtp.connect('smtp.163.com' 
  18. smtp.ehlo()  
  19. smtp.starttls()  
  20. smtp.ehlo()  
  21. smtp.set_debuglevel(1 
  22. smtp.login(username, password)  
  23. smtp.sendmail(sender, receiver, msg.as_string())  
  24. smtp.quit()
  25. 转载 原文地址:
  26. http://blog.sina.com.cn/s/blog_77ca69890101eo9x.html

qq、126邮箱都用授权码
qq邮箱要用ssl

0 0