个人记录使用

会用到smtplib 跟email,因为具体使用方法可以百度

源码

def send_eamil(receiver):
    global msg
    sender = \'***@163.com\'
    psd = \'***\'    #是授权密码不是邮箱登录密码
    mail_host=\'smtp.163.com\'
    subject=\'资源\'
    to_addrs=receiver.split(\',\')
    #创建带附件的实例
    msg=MIMEMultipart()
    msg[\'Subject\']=Header(subject,\'utf-8\')
    msg[\'from\']=Header(sender,\'utf-8\')
    msg[\'To\']=\",\".join(to_addrs)      #多个收件人
    #创建正文,把文本添加到msg类中
    msg.attach(MIMEText(\'资源,请查看附件\',\'plain\',\'utf-8\'))
    #构造附件
    file_path=\'文件路径\'
    att1=MIMEText(open(file_path,\'rb\').read(),
                  \' 64\',\'utf-8\')
    #att1[\"Content-Type\"]=\'application/octet-stream;name=%s\'%Header(filename,\'utf-8\').encode(\'utf-8\')         #与下边功能一致
    #att1[\"Content-Disposition\"]=\'attachment;file_name=%s\'%Header(\'%s\'%filename,\'utf-8\').encode(\'utf-8\')      #与下边功能一致
    att1.add_header(\'Content-Disposition\', \'attachment\', filename=名字随便起)#没有这三行会出现文件结尾变成bin现象
    att1.add_header(\'Content-ID\', \'<0>\')
    att1.add_header(\'X-Attachment-Id\', \'0\')
    msg.attach(att1)#将附件添加到类文件
    try:
        smtp=smtplib.SMTP()
        smtp.set_debuglevel(1)  #显示发送过程
        smtp.connect(mail_host)
        smtp.login(sender,psd)
        smtp.sendmail(sender,to_addrs,msg.as_string())
        smtp.quit()
        print(\'发送成功\')
    except Exception as result:
        print(\'发送失败,异常为%s\'%result)

if __name__ == \'__main__\':
    make_excel()
    send_eamil(\'***@qq.com,*@126.com\')

遇到的问题

1.出现554错误:由于网易机制问题,需要开启授权码,设置好就行了

2.发出的附件出现后缀为bin的现象是因为没加header以下是例子,代码也有标注,两种方式都行,个人喜欢简短一些的

name.add_header(\'Content-Disposition\', \'attachment\', file_name=\'C:/Users/yue.sun/Desktop/自己/py/工作/逸云节点.xls\')

name.add_header(\'Content-ID\',\'<0>\')

name.add_header(\'X-Attachment-Id\', \'0\')

 

 

收藏 打印