zoukankan      html  css  js  c++  java
  • 【PYTHON3】SMTP发送邮件

    学一门脚本语言,只是为了扩展自己的路子和尝试更便捷的解决问题渠道,非是谋生,说是兴趣也未尝不可,让我为码狂舞这一生,all my life!

    第一篇PYTHON3的博客,还是蛮激动的,写的不好的地方请留评论,虚心接受大家意见。

    设计

    工欲善其事,必先利其器,学python也需要一丁点的前期准备:找到一个好老师,我选择廖雪峰的python教程,写的很生动详细;安装适合版本的python,喜欢前卫的同学直接最新的python即可,不爱折腾的请选择python2.x版本;编程工具前期倒是不用在意,搞上pycharm只会定义变量也发挥不出来威力呀(貌似说的是本人,一开始学就搞了pycharm和webstorm)。

      代码基于python3.4.1版本,盛宴开始:源码招呼各位客官嘞。

     1 import smtplib, email
     2 from email.mime.text import MIMEText
     3 msg2 = MIMEText('hello, send first email''plain''utf-8')
     4 from_addr = input('From: ')
     5 password = input('Password: ')
     6 smtp_server = input('SMTP server: ')
     7 to_addr = input('To: ')
     8 server = smtplib.SMTP(smtp_server, 25)
     9 server.set_debuglevel(1)
    10 server.connect(smtp_server, 25)
    11 server.helo()
    12 server.ehlo()
    13 server.login(from_addr, password)
    14 server.sendmail(from_addr, [to_addr], msg2.as_string())
    15 server.quit()

    实现详解

    发送协议为smtp,依赖的两个库为smtplib和email

    MIMEText用于创建 文本类型邮件,参数分别是:正文、子类型、编码格式。第二参数可能比较疑惑,子类型是什么?默认填充plain即可,第三参数依照官方手册解释只有‘ascii’和‘utf-8’两种格式,想不明白,字符集不应该有很多种吗?GB2312/en_us.UTF8/en_ZH.UTF8以及UNICODE等众多格式。

    连接smtp的对端需要填写:用户名、 密码、smtpserver名称(qq的smtp为smtp.qq.com)、接收人的邮件地址,从输入获取。

    smtp发送的过程:初始化smtp对象、connect、helo、ehlo(helo和ehlo是smtp协议中可选内容,在登录前提供校验,qq要求发送该消息 )、login、sendmail、quit。基本原理就是建立连接后校验身份,通过后登陆并发送邮件,发送完quit。

    脚本实现及功能都很简单,提供大家python3.x版本的邮件发送参考,我不能厚颜无耻的继续骗字数了。 

  • 相关阅读:
    Java 开源博客——B3log Solo 0.6.6 正式版发布了!
    Java 开源博客——B3log Solo 0.6.6 正式版发布了!
    <Linux> Xen虚拟机下挂载
    Android中的动画详解系列【3】——自定义动画研究
    ueditor批量上传word图片
    富文本编辑器word
    帝国CMS 7.2-插件包整合
    PHPCMS v9插件包整合
    富文本编辑器从word粘贴公式
    富文本编辑器直接从 word 中复制粘贴公式
  • 原文地址:https://www.cnblogs.com/learn-my-life/p/3983470.html
Copyright © 2011-2022 走看看