美文网首页
SMTP 发送邮件

SMTP 发送邮件

作者: 庭阶 | 来源:发表于2019-03-20 15:37 被阅读0次

    一.环境准备

    1.开启SMTP服务,比如用qq 邮箱做测试账号,则需要先检查下是否已经开启了SMTP.

    步骤如下:
    1)打开邮箱页面,点击“设置”


    image.png

    2)在设置页面,点击“账号”


    image.png

    3)找到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务,并开启SMTP服务


    image.png

    开启后要记得第三方登录授权码,在代码中的发件人密码就是该授权密码,而不是平常在UI登录邮箱的那个密码

    2.找到SMTP和POP3的服务器地址

    1).在qq 邮箱首页,点击帮助中心


    image.png

    2)在查询框中输入相关字符,如输入“SMTP”,在出现的总多结果中,点击相关的信息,如截图:


    image.png

    3)步骤2)后的结果截图


    image.png

    二.代码实现

    
    #coding:utf-8  #强制使用utf-8编码格式
    
    import smtplib
    
    from email.header import Header
    from email.mime.text import MIMEText
    from email.utils import parseaddr,formataddr
     
    def _format_addr(s):
        name,addr=parseaddr(s)
        return formataddr((Header(name,'utf-8').encode(),addr))
    
    
    from_addr=input('请输入发送人邮箱地址:')
    password=input('请输入密码:')#注意,这里是第三方客户端登录授权密码,不是邮箱的登录密码
    to_addr=input('请输入收件人邮箱地址:')
    smtp_server=input('请输入smtp 服务器地址:')
    
    #from_addr = 'xxxxxx@qq.com'
    #password = 'zms.....'
    #to_addr = 'xxxxxxxx@qq.com'
    #smtp_server = 'smtp.qq.com'
    
    msg=MIMEText('hello,send by python...','plain','utf-8')
    msg['From']=_format_addr('python爱好者<%s>' % from_addr)
    msg['To']=_format_addr('管理员<%s>' % to_addr)
    msg['Subject']=Header('来自SMTP,,,,,','utf-8').encode()
    
    
    server = smtplib.SMTP(smtp_server,25) # SMTP协议默认端口是25
    #server.set_debuglevel(1)
    server.login(from_addr, password)
    server.sendmail(from_addr, [to_addr], msg.as_string())
    server.quit()#关闭连接
    
    
    

    三.代码运行后截图:

    image.png

    相关文章

      网友评论

          本文标题:SMTP 发送邮件

          本文链接:https://www.haomeiwen.com/subject/zuozmqtx.html