1. 可带图片附件
from email import encoders
from email.header import Header
from email.mime.base import MIMEBase
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from smtplib import SMTP
def send_email(receivers, topic, imageName,content, sender, password):
for receiver in receivers:
try:
msg = MIMEMultipart()
msg['From'] = Header(sender, 'utf-8')
msg['To'] = Header(receiver, 'utf-8')
msg['Subject'] = Header(topic, 'utf-8')
msg.attach(MIMEText(content, 'plain', 'utf-8'))
with open(imageName+'.png', 'rb') as f:
mime = MIMEBase('image', 'png', filename='Hello.png')
mime.add_header('Content-Disposition', 'attachment', filename=imageName+'.png')
mime.set_payload(f.read())
encoders.encode_base64(mime)
msg.attach(mime)
server = SMTP('smtp.qq.com', 25)
server.login(sender, password)
server.sendmail(sender, receiver, msg.as_string())
print('发送成功!')
except Exception as error:
print(error)
print('发送失败')
continue
if __name__ == '__main__':
sender = '666@qq.com'
password = 'xp6'
receiver = ['6@qq.com']
topic = '邮件测试'
content = '邮件测试,请勿回复'
imageName = '1'
send_email(receiver, topic, imageName,content, sender, password)
2. 仅发送文本
import random, time
def send_email(SMTPServer, sender, passwd, message1, title, receiver):
import smtplib
from email.mime.text import MIMEText
message = message1
msg = MIMEText(message)
msg["Subject"] = title
msg["From"] = sender
mailServer = smtplib.SMTP(SMTPServer, 25)
mailServer.login(sender, passwd)
mailServer.sendmail(sender, receiver, msg.as_string())
mailServer.quit()
return 0
def email():
SMTPServer = "smtp.qq.com"
sender = "853386196@qq.com"
passwd = "wesfwzyfrwfabeae"
message = "【九天创想 - 920社区】您的验证码:109443,该验证码5分钟内有效。"
title = '920登录验证'
receiver = ['1809296387@qq.com','603188080@qq.com']
send_email(SMTPServer, sender, passwd, message, title, receiver)
email()
第三方库
pip install yagmail
import yagmail
yag = yagmail.SMTP( user="85336@qq.com", password="ygow", host='smtp.qq.com')
contents = ['This is the body, and here is just text http://somedomain/image.png',
'You can find an audio file attached.', '/local/path/song.mp3']
yag.send('180929@qq.com', '发送附件', contents, ["1.png"])
print('发送成功')
<h2><a id="1__0"></a>1. 可带图片附件</h2>
<pre><div class="hljs"><code class="lang-python"><span class="hljs-keyword">from</span> email <span class="hljs-keyword">import</span> encoders
<span class="hljs-keyword">from</span> email.header <span class="hljs-keyword">import</span> Header
<span class="hljs-keyword">from</span> email.mime.base <span class="hljs-keyword">import</span> MIMEBase
<span class="hljs-keyword">from</span> email.mime.multipart <span class="hljs-keyword">import</span> MIMEMultipart
<span class="hljs-keyword">from</span> email.mime.text <span class="hljs-keyword">import</span> MIMEText
<span class="hljs-keyword">from</span> smtplib <span class="hljs-keyword">import</span> SMTP
<span class="hljs-keyword">def</span> <span class="hljs-title function_">send_email</span>(<span class="hljs-params">receivers, topic, imageName,content, sender, password</span>):
<span class="hljs-comment"># 自己填好相关信息</span>
<span class="hljs-keyword">for</span> receiver <span class="hljs-keyword">in</span> receivers:
<span class="hljs-keyword">try</span>:
msg = MIMEMultipart()
msg[<span class="hljs-string">'From'</span>] = Header(sender, <span class="hljs-string">'utf-8'</span>) <span class="hljs-comment"># 编辑邮件头</span>
msg[<span class="hljs-string">'To'</span>] = Header(receiver, <span class="hljs-string">'utf-8'</span>)
msg[<span class="hljs-string">'Subject'</span>] = Header(topic, <span class="hljs-string">'utf-8'</span>)
msg.attach(MIMEText(content, <span class="hljs-string">'plain'</span>, <span class="hljs-string">'utf-8'</span>)) <span class="hljs-comment"># 把正文附在邮件上</span>
<span class="hljs-keyword">with</span> <span class="hljs-built_in">open</span>(imageName+<span class="hljs-string">'.png'</span>, <span class="hljs-string">'rb'</span>) <span class="hljs-keyword">as</span> f:
mime = MIMEBase(<span class="hljs-string">'image'</span>, <span class="hljs-string">'png'</span>, filename=<span class="hljs-string">'Hello.png'</span>) <span class="hljs-comment"># 创建表示附件的MIMEBase对象,重新命名为test.png</span>
mime.add_header(<span class="hljs-string">'Content-Disposition'</span>, <span class="hljs-string">'attachment'</span>, filename=imageName+<span class="hljs-string">'.png'</span>)
mime.set_payload(f.read()) <span class="hljs-comment"># 读取附件内容</span>
encoders.encode_base64(mime) <span class="hljs-comment"># 对附件Base64编码</span>
msg.attach(mime) <span class="hljs-comment"># 把附件附在邮件上</span>
server = SMTP(<span class="hljs-string">'smtp.qq.com'</span>, <span class="hljs-number">25</span>)
server.login(sender, password)
server.sendmail(sender, receiver, msg.as_string())
<span class="hljs-built_in">print</span>(<span class="hljs-string">'发送成功!'</span>)
<span class="hljs-keyword">except</span> Exception <span class="hljs-keyword">as</span> error:
<span class="hljs-built_in">print</span>(error)
<span class="hljs-built_in">print</span>(<span class="hljs-string">'发送失败'</span>)
<span class="hljs-keyword">continue</span>
<span class="hljs-keyword">if</span> __name__ == <span class="hljs-string">'__main__'</span>:
sender = <span class="hljs-string">'666@qq.com'</span>
password = <span class="hljs-string">'xp6'</span>
receiver = [<span class="hljs-string">'6@qq.com'</span>]
topic = <span class="hljs-string">'邮件测试'</span>
content = <span class="hljs-string">'邮件测试,请勿回复'</span>
imageName = <span class="hljs-string">'1'</span> <span class="hljs-comment"># 附件 图片名字</span>
send_email(receiver, topic, imageName,content, sender, password)
</code></div></pre>
<h2><a id="2__48"></a>2. 仅发送文本</h2>
<pre><div class="hljs"><code class="lang-python"><span class="hljs-keyword">import</span> random, time
<span class="hljs-comment"># 发送邮件 1</span>
<span class="hljs-keyword">def</span> <span class="hljs-title function_">send_email</span>(<span class="hljs-params">SMTPServer, sender, passwd, message1, title, receiver</span>):
<span class="hljs-comment">#发邮件的库</span>
<span class="hljs-keyword">import</span> smtplib
<span class="hljs-comment">#邮件文本</span>
<span class="hljs-keyword">from</span> email.mime.text <span class="hljs-keyword">import</span> MIMEText
<span class="hljs-comment">#SMTP服务器</span>
<span class="hljs-comment"># SMTPServer = "smtp.qq.com"</span>
<span class="hljs-comment">#发邮件的地址</span>
<span class="hljs-comment"># sender = "853386196@qq.com"</span>
<span class="hljs-comment">#发送者邮箱的密码</span>
<span class="hljs-comment"># passwd = "bqnnmmtaillgbfcb"</span>
<span class="hljs-comment">#设置发送的内容</span>
message = message1
<span class="hljs-comment">#转换成邮件文本</span>
msg = MIMEText(message)
<span class="hljs-comment">#标题 主题</span>
msg[<span class="hljs-string">"Subject"</span>] = title
<span class="hljs-comment">#发送者</span>
msg[<span class="hljs-string">"From"</span>] = sender
<span class="hljs-comment">#创建SMTP服务器</span>
mailServer = smtplib.SMTP(SMTPServer, <span class="hljs-number">25</span>)
<span class="hljs-comment">#登陆邮箱</span>
mailServer.login(sender, passwd)
<span class="hljs-comment">#发送邮件</span>
mailServer.sendmail(sender, receiver, msg.as_string())
<span class="hljs-comment">#退出邮箱</span>
mailServer.quit()
<span class="hljs-keyword">return</span> <span class="hljs-number">0</span>
<span class="hljs-comment"># 发送邮件 1</span>
<span class="hljs-keyword">def</span> <span class="hljs-title function_">email</span>():
<span class="hljs-comment">#SMTP服务器</span>
SMTPServer = <span class="hljs-string">"smtp.qq.com"</span>
sender = <span class="hljs-string">"853386196@qq.com"</span>
passwd = <span class="hljs-string">"wesfwzyfrwfabeae"</span>
message = <span class="hljs-string">"【九天创想 - 920社区】您的验证码:109443,该验证码5分钟内有效。"</span>
title = <span class="hljs-string">'920登录验证'</span>
receiver = [<span class="hljs-string">'1809296387@qq.com'</span>,<span class="hljs-string">'603188080@qq.com'</span>]
send_email(SMTPServer, sender, passwd, message, title, receiver)
email()
</code></div></pre>
<h2><a id="_102"></a>第三方库</h2>
<pre><div class="hljs"><code class="lang-python">pip install yagmail
</code></div></pre>
<pre><div class="hljs"><code class="lang-python"><span class="hljs-keyword">import</span> yagmail
<span class="hljs-comment">#链接邮箱服务器</span>
yag = yagmail.SMTP( user=<span class="hljs-string">"85336@qq.com"</span>, password=<span class="hljs-string">"ygow"</span>, host=<span class="hljs-string">'smtp.qq.com'</span>)
<span class="hljs-comment"># 邮箱正文</span>
contents = [<span class="hljs-string">'This is the body, and here is just text http://somedomain/image.png'</span>,
<span class="hljs-string">'You can find an audio file attached.'</span>, <span class="hljs-string">'/local/path/song.mp3'</span>]
<span class="hljs-comment"># 发送邮件</span>
<span class="hljs-comment">#yag.send('taaa@126.com', 'subject', contents)</span>
<span class="hljs-comment"># 发给多个用户</span>
<span class="hljs-comment">#yag.send(['aa@126.com','bb@qq.com','cc@gmail.com'], 'subject', contents)</span>
<span class="hljs-comment"># 发附件</span>
yag.send(<span class="hljs-string">'180929@qq.com'</span>, <span class="hljs-string">'发送附件'</span>, contents, [<span class="hljs-string">"1.png"</span>])
<span class="hljs-built_in">print</span>(<span class="hljs-string">'发送成功'</span>)
</code></div></pre>
留言