Python smtplib发邮件
发送普通文本内容的邮件
import smtplib
from email.header import Header
from email.mime.text import MIMEText
# smtp服务器信息
smtp_server = 'smtp.163.com'
server_port = 465
# 发送方信息
sender = '发送的邮箱地址'
password = '发送邮箱的smtp授权码'
# 收件人地址,列表可发给多人
receivers = ['123456@qq.com', '3123123@qq.com', '12312@qq.com']
# 邮箱的正文内容,参数分别为内容,格式(plain 为纯文本),编码
msg = MIMEText('Here is content.', 'plain', 'utf-8')
# 邮件头信息
msg['From'] = Header(sender) # 发件人
msg['To'] = Header(', '.join(receivers)) # 发到哪里,参数为字符串
msg['Subject'] = Header('This is subject') # 邮件标题
# 发送邮件的操作
try:
server = smtplib.SMTP_SSL() # SSL加密传输
server.connect(smtp_server, server_port) # 连接smtp,服务器和端口
server.login(sender, password) # 登录发信邮箱
server.sendmail(sender, receivers, msg.as_string()) # 发送邮件
server.quit() # 关闭服务器
print('发送成功')
except smtplib.SMTPException:
print('发送失败')
发送html格式的邮件
Python发送HTML格式的邮件与发送纯文本消息的邮件不同之处就是将MIMEText中_subtype设置为html
发送带有附件的邮件
发送带附件的邮件,首先要创建MIMEMultipart()实例,然后构造附件,如果有多个附件,可依次构造,最后利用smtplib.smtp发送。
import smtplib
from email.header import Header
from email.mime.application import MIMEApplication
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
# smtp服务器信息
smtp_server = 'smtp.163.com'
server_port = 465
# 发送方信息
sender = '发送的邮箱地址'
password = '发送邮箱的smtp授权码'
# 收件人地址,列表可发给多人
receivers = ['969831239@qq.com', '124123989@qq.com']
# 实例化,先添加正文内容
msg = MIMEMultipart()
msg.attach(MIMEText('This is content.', 'plain', 'utf-8'))
# 添加附件1
att1 = MIMEApplication(open('tips.py', 'rb').read(), 'utf-8')
att1['Content-Disposition'] = 'attachment; filename="down.py"' # filename随便起,是接收到的附件显示名称
# att1["Content-Type"] = 'application/octet-stream' Content-Type默认为application/octet-stream
msg.attach(att1)
# 添加附件2
att2 = MIMEApplication(open('source.jpg', 'rb').read(), 'utf-8')
att2['Content-Disposition'] = 'attachment; filename="girl.jpg"'
msg.attach(att2)
# 邮件头信息
msg['From'] = Header(sender) # 发件人
msg['To'] = Header(', '.join(receivers)) # 发到哪里,参数为字符串
msg['Subject'] = Header('This is subject') # 邮件标题
# 发送邮件的操作
try:
server = smtplib.SMTP_SSL() # SSL加密传输
server.connect(smtp_server, server_port) # 连接smtp,服务器和端口
server.login(sender, password) # 登录发信邮箱
server.sendmail(sender, receivers, msg.as_string()) # 发送邮件
server.quit() # 关闭服务器
print('发送成功')
except smtplib.SMTPException:
print('发送失败')
发送正文带有图片的邮件
使用html格式的img标签指定图片cid显示图片,图片需要用MIMEImage上传并指定img Content-ID
import smtplib
from email.header import Header
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
# smtp服务器信息
smtp_server = 'smtp.qq.com'
server_port = 465
# 发送方信息
sender = '发送的邮箱地址'
password = '发送邮箱的smtp授权码'
# 收件人地址,列表可发给多人
receivers = ['dsaisu@163.com', '76das23021@qq.com', '253das58570@qq.com']
# 实例化,添加正文内容,html格式,<img>标签 指定cid属性的值等于上传图片中Content-ID的值
msg = MIMEMultipart()
msg.attach(MIMEText('<img src="cid:demo" />', 'html', 'utf-8')) # 与下面的Content-ID的值相同
# 添加图片
img = MIMEImage(open('source.jpg', 'rb').read())
img.add_header('Content-ID', 'demo') # 与上面的cid相同
msg.attach(img)
# 邮件头信息
msg['From'] = Header(sender) # 发件人
msg['To'] = Header(', '.join(receivers)) # 发到哪里,参数为字符串
msg['Subject'] = Header('This is subject') # 邮件标题
# 发送邮件的操作
try:
server = smtplib.SMTP_SSL() # SSL加密传输
server.connect(smtp_server, server_port) # 连接smtp,服务器和端口
server.login(sender, password) # 登录发信邮箱
server.sendmail(sender, receivers, msg.as_string()) # 发送邮件
server.quit() # 关闭服务器
print('发送成功')
except smtplib.SMTPException:
print('发送失败')
Python smtplib发邮件的更多相关文章
- 【Python】 发邮件用 smtplib & email
smtplib & email ■ 概述 发邮件主要用到smtplib以及email模块.stmplib用于邮箱和服务器间的连接,发送的步骤.email模块主要用于处理编码,邮件内容等等.主要 ...
- Python自动发邮件——smtplib和email库和yagmail库
''' 一.先导入smtplib模块 导入MIMEText库用来做纯文本的邮件模板 二.发邮件几个相关的参数,每个邮箱的发件服务器不一样,以163为例子百度搜索服务器是 smtp.163.com 三. ...
- python之smtplib发邮件
第一版: 认证发信,不支持附件 #!/usr/bin/env python # --------------------------------------- # author : Geng Jie ...
- python自动发邮件总结及实例说明
python发邮件需要掌握两个模块的用法,smtplib和email,这俩模块是python自带的,只需import即可使用.smtplib模块主要负责发送邮件,email模块主要负责构造邮件. sm ...
- 【Python系列】Python自动发邮件脚本-html邮件内容
缘起 这段时间给朋友搞了个群发邮件的脚本,为了防止进入垃圾邮件,做了很多工作,刚搞完,垃圾邮件进入率50%,觉得还不错,如果要将垃圾邮件的进入率再调低,估计就要花钱买主机了,想想也就算了,先发一个月, ...
- python自动发邮件库yagmail
#### 一般发邮件方法 我以前在通过Python实现自动化邮件功能的时候是这样的: import smtplib from email.mime.text import MIMEText from ...
- python smtp 发邮件 添加附件
# -*- coding:utf-8 -*- # __author__ = 'justing' import os import smtplib from email.mime.multipart i ...
- Python自动发邮件-yagmail库
之前写过用标准库使用Python Smtplib和email发送邮件,感觉很繁琐,久了不用之后便忘记了.前几天看知乎哪些Python库让你相见恨晚?,看到了yagmail第三方库,学习过程中遇到一些问 ...
- python基础-发邮件smtp
先来想下发送邮件需要填写什么,还需要有什么条件1.与邮件服务器建立连接,用户名和密码2.发邮件:发件人,收件人,主题,内容,附件3.发送 使用第三方邮箱发送邮件 #! /usr/bin/env pyt ...
随机推荐
- 脚本实现PXE装机
#!/bin/bash read -p "请输入您的装机服务器:" ip read -p "请输入您想要的ip最小值(1-255):" min read -p ...
- AtCoder Beginner Contest 137 D题【贪心】
[题意]一共有N个任务和M天,一个人一天只能做一个任务,做完任务之后可以在这一天之后的(Ai-1)天拿到Bi的工资,问M天内最多可以拿到多少工资. 链接:https://atcoder.jp/cont ...
- JavaScript实现 简易 堆
有两个原始操作用于保证插入或删除节点以后堆是一个有效的最大堆或者最小堆: shiftUp(): 如果一个节点比它的父节点大(最大堆)或者小(最小堆),那么需要将它同父节点交换位置.这样是这个节点在数组 ...
- 关于Map的问题
关于Map的问题主要有: (1)什么是散列表? (2)怎么实现一个散列表? (3)java中HashMap实现方式的演进? (4)HashMap的容量有什么特点? (5)HashMap是怎么进行扩容的 ...
- BZOJ 2402 陶陶的难题II (树链剖分、线段树、凸包、分数规划)
毒瘤,毒瘤,毒瘤-- \(30000\)这个数据范围,看上去就是要搞事的啊... 题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=2402 ...
- Rhel7.4系统部署cobbler
cobbler安装 一.系统信息: [root@openstack ~]# cat /etc/redhat-release Red Hat Enterprise Linux Server releas ...
- java随机生成6位随机数 5位随机数 4位随机数
随机数,应用会相当广,验证数,订单号,流水号拼接. 下面是java随机数生成语句: 生成6位随机数(不会是5位或者7位,仅只有6位): System.+)*)); 同理,生成5位随机数: System ...
- java读取XML文件,及封装XML字符串
package com.yyl.text; import java.io.FileInputStream; import java.util.ArrayList; import org.junit.T ...
- PhoneUtils
import java.util.regex.Matcher; import java.util.regex.Pattern; public class PhoneUtils { /** * @par ...
- flutter webview_flutter 设置cookies
WebViewController _controller; onWebViewCreated: (WebViewController wvc) { _controller = wvc; } onPa ...