note-python发送邮件

发送邮件

# coding=utf-8

from audioop import add
from email.mime.text import MIMEText
from email.header import Header
from email.utils import formataddr, parseaddr

import smtplib
import getpass

def semai(f_fullname, t_fullname,  s_passwd,  subject, msg_str):
    F = f_fullname
    T = t_fullname
    name, addr = parseaddr(F)
    fromaddr = formataddr((Header(name,'utf-8').encode(), addr))
    s_addr = addr
    name, addr = parseaddr(T)
    toaddr = formataddr((Header(name,'utf-8').encode(), addr))
    r_addr = addr
 
    #s_passwd = '密码'

    msg = MIMEText(msg_str, 'plain', 'utf-8')
    msg['From'] = fromaddr
    msg['TO'] = toaddr
    msg['Subject'] = Header(subject, 'utf-8')

    try:
        server1 = smtplib.SMTP_SSL("smtp.qq.com",465)
        server1.login(s_addr, s_passwd)
        server1.sendmail(s_addr, r_addr, msg.as_string())
        server1.quit()
        print('email send success!') 
    except smtplib.SMTPConnectError as e:
        print('邮件发送失败,连接失败:', e.smtp_code, e.smtp_error)
    except smtplib.SMTPAuthenticationError as e:
        print('邮件发送失败,认证错误:', e.smtp_code, e.smtp_error)
    except smtplib.SMTPSenderRefused as e:
        print('邮件发送失败,发件人被拒绝:', e.smtp_code, e.smtp_error)
    except smtplib.SMTPRecipientsRefused as e:
        print('邮件发送失败,收件人被拒绝:', e.smtp_code, e.smtp_error)
    except smtplib.SMTPDataError as e:
        print('邮件发送失败,数据接收拒绝:', e.smtp_code, e.smtp_error)
    except smtplib.SMTPException as e:
        print('邮件发送失败, ', e.message)
    except Exception as e:
        print('邮件发送异常, ', str(e))

if __name__ == '__main__':
    f_fullname = 'test测试-发送人昵称-sentname<xxxxxxx@qq.com>'
    t_fullname = 'test测试-收件人昵称-recevicename<xxxxxx@163.com>'
    s_passwd = getpass.getpass()
    subject = 'NEW zhu测试 ti  test'
    msg_str = 'NEW wen 测试zhang zheng wen ,'

    semai(f_fullname, t_fullname, s_passwd, subject, msg_str)





posted @ 2022-04-15 10:01  yy9knsg  阅读(34)  评论(0)    收藏  举报