python3 发邮件 smtplib & email 库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python3 发邮件 smtplib & email 库相关的知识,希望对你有一定的参考价值。

 嗨 实现了用163发送到qq的功能,遗留了两个问题:

1. 接收者list会报错;
update:因为list[]会传递过去一个真的[]list,改成如下就可以了:
before:
  maillist=[[email protected],[email protected]] msg[To]=maillist print (maillist) -->[[email protected], [email protected]] after: maillist = [[email protected],[email protected]] msg[To] = ,.join(maillist) print(maillist) --> [email protected],[email protected]

 


2. msg.as_string() 是什么意思?
update:就是把msg转成string了


揍是不想google了啊喂,感觉最近google越来越查不到想要的答案了。
update:还是得继续google下去,继续求问下去啊,另外,官方英文文档看了也看不懂,囧了个囧

 

技术分享

 

贴上部分代码,方便懒人copy:

def sendmail(subject, content):
    email_host = smtp.163.com     # 发送者是163邮箱
    email_user = 发送者邮箱账号,我用汉字替换掉  # 发送者账号
    email_pwd = 发送者邮箱密码,我用汉字替换掉       # 发送者密码
    maillist =接收者邮箱账号,我用汉字替换掉    # 接收者账号,本来想写成[]list的,但是报错,还没解决!
    me = email_user
    # 三个参数:第一个为文本内容,第二个 html 设置文本格式,第三个 utf-8 设置编码
    msg = MIMEText(content, html, utf-8)    # 邮件内容
    msg[Subject] = subject    # 邮件主题
    msg[From] = me    # 发送者账号
    msg[To] = maillist    # 接收者账号列表(列表没实现)

    smtp = smtplib.SMTP(email_host) # 如上变量定义的,是163邮箱
    smtp.login(email_user, email_pwd)   # 发送者的邮箱账号,密码
    smtp.sendmail(me, maillist, msg.as_string())    # 参数分别是发送者,接收者,第三个不知道
    smtp.quit() # 发送完毕后退出smtp
    print (email send success.)


sendmail(主题, 内容)    # 调用发送邮箱的函数

还有第二种方法也实现了,不过我喜欢上面那种,是loveisbug写的,感觉很程序

第二种是从网上找的,作者忘了,真忘了,昨天搜的

import smtplib
import email.mime.multipart
import email.mime.text

msg = email.mime.multipart.MIMEMultipart()
msg[from] = 发送者的邮箱账号
msg[to] = 接收者的邮箱账号
msg[subject] = test,这是邮件主题
content = ‘‘‘‘‘
    你好,
            这是一封自动发送的邮件的内容。
‘‘‘
txt = email.mime.text.MIMEText(content)
msg.attach(txt)

smtp = smtplib
smtp = smtplib.SMTP()
smtp.connect(smtp.163.com) # 使用的发送者邮箱的那啥来着,post
smtp.login(发送者的邮箱账号, 发送者的邮箱密码)
smtp.sendmail(发送者的邮箱账号, 接收者的邮箱账号, str(msg))
smtp.quit()

 

以上是关于python3 发邮件 smtplib & email 库的主要内容,如果未能解决你的问题,请参考以下文章

21-py3 发邮件

python3之模块SMTP协议客户端与email邮件MIME对象

Python3 使用smtplib和email模块发送邮件

python3:利用smtplib库和smtp.qq.com邮件服务器发送邮件

python发邮件

在 Python3 中使用 smtplib 发送多部分电子邮件,但未显示第二部分