zoukankan      html  css  js  c++  java
  • python发送电子邮件用到的模块与函数

    smtplib模块,
    smtplib提供了一种很方便的途径发送电子邮件,它对smtp协议进行了简单的封装。

     smtplib是用来发送邮件用的

    一.这个模块分别有什么方法? 二.模块的方法怎么用?

    smtplib发邮件时

    • 1.引入smtplib模块
    # 导入第三方模块
    import smtplib
    from email.mime.text import MIMEText
    from email.utils import formataddr
    上述代码中出现的,其中email是什么?有哪些用法?

      email是用来构建邮件内容

    Python MIMEText.MIMEText方法
    # 需要导入模块: from email import MIMEText [as 别名]
    # 或者: from email.MIMEText import MIMEText [as 别名]
    msg = MIMEText('') 
    构造MIMEText对象时,
    第一个参数就是邮件正文,
    第二个参数是MIME的subtype,传入'plain',最终的MIME就是'text/plain',
    第三个参数:记住一定要用utf-8编码保证多语言兼容性。
    # 必须将邮件内容做一次MIME转换--发送含链接的邮件
    msg = MIMEText(mail_msg, 'html', 'utf-8')
     
    formataddr
    formataddr()来格式化一个邮件地址。
    • 2.smtplib模块中有一些类如下

    类下面又有一些方法,如下:

    其中SMTP 是一个类(class),再往下面滑可以看到其中包含了很多函数;

    调用 smtplib 模块下、SMTP 类下的方法,应这样写:smtplib.SMTP.方法
       # 配置python与邮件的SMPT服务器的连接通道(qq邮箱)
    server = smtplib.SMTP_SSL("smtp.qq.com", 465)

    SMTP (Simple Mail Transfer Protocol)翻译过来是“简单邮件传输协议”的意思,
    SMTP 协议是由源服务器到目的地服务器传送邮件的一组规则。
    可以简单理解为:我们需要通过SMTP指定一个服务器,这样才能把邮件送到另一个服务器。

    SMTP类方法:

    SMTP.connect(host='localhost',port=0) :链接到远程SMTP主机的方法,host为远程主机地址,port为远程主机smtp端口,默认为25,也可以直接使用host:port形式来表示:如:SMTP.connect('smtp.163.com','25')

    SMTP.login(user,password):登陆需要认证的SMTP服务器,参数为用户名与密码,如SMTP.login('python@163.com','123')

    SMTP.sendmail(from_addr,to_addrs,msg,mail_options=[],rcpt_options=[]):实现邮件的发送功能,参数from_addr为发件人,to_addrs为收件人,msg为邮件内容,如:SMTP.sendmail('python@163.com','demo@qq.com',body)。

    SMTP.starttls(keyfile=None,certfile=None):启用TLS安全传输模式,所有SMTP指令都将加密传输,如使用gmail的smtp服务时需哟啊启动此项才能正常发送邮件。

    SMTP.quit():断开smtp服务器链接

    SMTP.set_debuglevel(level):设置调试输出级别,值为1,2或True,发送调试消息到服务器

    SMTP.send_message(msg,from_addr=None,to_addrs=None,mail_options=[],rcpt_options=[]):这是使用有email.message.Message对象表示的消息进行调用的便捷方法使用sendmail(),参数的含义与sendmail()相同,只有msg是一个Message对象;如果from_addr是None或者to_addrs是None,则send_message用从msg头部提取的地址填充那些参数,from设置为发件人自动,TO设置为to_addrs。

    • 3.连接(connect)指定的服务器。
    # 配置python与邮件的SMPT服务器的连接通道( qq邮箱)
    server = smtplib.SMTP_SSL("smtp.qq.com", 465)
    host是指定连接的邮箱服务器,你可以指定服务器的域名。通过搜索“xx邮箱服务器地址”,就可以找到;
    port 是“端口”的意思。端口属于计算机网络知识里的内容,现在我们只要知道它是一个【整数】即可。
    我们需要指定SMTP服务使用的端口号,一般情况下SMTP默认端口号为25。
    如果25行不通,可以通过搜索或者去邮箱设置里面查看端口。比如用自己的企业邮箱来发邮件,登录邮箱后,在【设置-选项-POP和IMAP】里面可以看到这些信息:
    查看邮箱端口信息
    查看邮箱端口信息
    查询包括服务器名称,端口和加密方式。服务器名称是:mail.forchange.tech,端口是587。也可以登录自己的邮箱,查看这些信息;
    如果是QQ邮箱,查出的服务器名称和端口号是:SMTP服务器地址是:smtp.qq.com,端口是465或587;
    • 4.登录指定的服务器。login是登录的意思,需要输入两个参数:登录邮箱和授权码。
    登录用户名及授权码
    # 模拟登录
    server.login(my_sender, my_pass)
    • 5.发送邮件内容。sendmail是“发送邮件”的意思,是发送邮件用的,sendmail()方法需要三个参数:发件人,收件人和邮件内容。
    这里的发件人from_addr与上面的username是一样的,都是上面讲的登录邮箱,所以只用设置一次。
    msg.as_string()是一个字符串类型:as_string()是将发送的信息msg变为字符串类型。
    # 邮件内容发送
    server.sendmail(my_sender, [to_user, ], msg.as_string())
    • 6.退出服务器。
      # 关闭连接通道
      server.quit()
     
     
     
     
     

    本文来自博客园,作者:Jaoany,转载请注明原文链接:https://www.cnblogs.com/fanglijiao/p/15035778.html

  • 相关阅读:
    C语言实现—学生成绩管理系统
    C++ 制作一个“测运”小游戏-rand()函数的应用
    C语言实现-航空订票系统(飞机订票系统)
    测试随笔功能
    ASP.Net 连接多个数据库之间的切换
    190906mysql常用语法
    190327 Python登录接口
    190221 百元百鸡
    181102 Windows下安装kivy(用python写APP)
    181102 Python环境搭建(安装Sublime Text3)
  • 原文地址:https://www.cnblogs.com/fanglijiao/p/15035778.html
Copyright © 2011-2022 走看看