使用Python发送电子邮件
使用python发送邮件并不难,这里使用的是SMTP协议。
Python标准库中内置了smtplib,使用它发送邮件只需提供邮件内容与发送者的凭证即可。
代码如下:
# coding:utf-8
import smtplib
from email.mime.text import MIMEText
import time
import os
import sys def send_mail(subject, body, mail_to, username, password, mail_type='plain'):
assert isinstance(mail_to, list) == True
msg = MIMEText(body, _subtype=mail_type)
# 定义标题
msg['Subject'] = subject
# 定义发信人
msg['From'] = username
#
msg['To'] = ';'.join(mail_to)
# 定义发送时间(不定义的可能有的邮件客户端会不显示发送时间)
msg['date'] = time.strftime('%a, %d %b %Y %H:%M:%S %z')
try:
smtp = smtplib.SMTP()
# 连接SMTP服务器,
smtp.connect('smtp.exmail.qq.com')
# 用户名密码
smtp.login(username, password)
smtp.sendmail(username, mail_to, msg.as_string())
smtp.quit()
return True
except Exception as e:
print "send mail error:%s"%e
return False if __name__ == "__main__": if len(sys.argv) < 2:
print 'Usage : python mail.py object_mail'
sys.exit() subject = '你好,这是一封测试邮件'
body = '''
这是经过我们的python程序发送的一封邮件,请勿直接回复
'''
mail_to = [sys.argv[1]]
username = 'inevermore@foxmail.com'
password = os.getenv('PASSWORD')
send_mail(subject, body, mail_to, username, password)
这里有几点:
1.我把邮箱的密码设置在了环境变量中,可以使用 export PASSWORD=’XXXXXXXX’ 设置
2.发送者的邮箱必须开通SMTP发送服务,否则程序会抛出异常。
3.使用 python mail.py 收件人的地址 即可发送成功
使用Python发送电子邮件的更多相关文章
- python发送电子邮件
或者收发邮件都得小心翼翼的,怕一不小心被有心人瞧见,又得被说说. 为了能发邮件而不被发现,嘿嘿.我就用python写了个邮件发送程序,用控制台控制,不了解的人一定以为哥还在编程工作呢.哈哈. 以下简介 ...
- 【python学习之五】自定义函数实现用 Python 发送电子邮件
前言 之前论坛里有人发过关于发送邮件的帖子,设计器也有关于发送邮件的控件.我这里再次重复,希望能有帮到大家的地方. 信息准备 发送邮件前必须准备好一些基本信息,例如发件人邮箱地址.发件人邮箱密码.收件 ...
- 在Python中使用SMTP发送电子邮件
Python中有内置的smtplib模块,完成一封邮件的发送,需要做很多准备工作.第三方的py_smtp这个包也是基于smtplib的,在Python中使用py_smtp发送电子邮件非常方便,只要填写 ...
- python#模拟发送电子邮件
#-*- coding:utf-8 -*- #模拟发送电子邮件 from email.mime.text import MIMEText from_addr = 'aa@sss.com' passwo ...
- web端自动化——Python的smtplib发送电子邮件
SMTP (Simple Mail Transfer Protocol)是简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式. Python的smtplib模块提 ...
- Django 发送电子邮件
官方片段: 虽然Python使得通过smtplib 模块发送电子邮件相对容易,但Django提供了一些轻量级包装.提供这些包装器是为了使发送电子邮件更加快速,以便在开发过程中轻松测试电子邮件发送,并为 ...
- 发送电子邮件模块smtplib
功能:smtplib模块是通过邮件服务器发送电子邮件,是smtp客户端的实现,支持邮件格式有:文本.HTML.Image.EXCEL等. 1 #!/usr/bin/env python 2 # cod ...
- Python发送带附件的邮件
看别人的博客就不要在往别人的邮箱里发东西了行不行, 有点素质可以吗!!! 写出来分享还不知道珍惜!!!!! #-*-encoding:utf-8 -*- import os import smtpli ...
- JAVA实现发送电子邮件
相信大家对于网站也好,手机app也好,用户注册时,需要进行邮箱验证的功能特别好奇吧,本篇我将带领大家一起实现一下这个简单而又神奇的小功能,让我们的应用也可以加入这些神奇的元素.废话不多说,下面开始我们 ...
随机推荐
- JavaScript的for循环语句
语法格式 for(初始化值;循环的条件;每一次循环的递增值){ // 循环的条件结果为true,则执行循环体中的代码 } 示例(打印出1-10之间的整数): for(var a=1;a<=10; ...
- Tomcat 部署2个项目,只有一个可以访问的解决方案
Tomcat 部署2个应用后只有一个可以访问,另一个不能访问,一般来说就是因为Tomcat启动加载了配置文件后,当启动另一个应用时由于一些配置名称相同所以不再加载,导致之后应用无法正常启动. 异常信息 ...
- python批量下载淘宝图片3
import urllib.request import os def url_open(url): req = urllib.request.Request(url) req.add_header( ...
- 安装tomcat7.0.82
下载安装tomcat mkdir /tools cd /tools wget http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.82/bin/ap ...
- 微信商户现金红包api php
微信开发文档: 现金红包:https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon.php?chapter=13_5 裂变红包:https:// ...
- mysql table status
SHOW TABLE STATUS 能获得表的信息 可以SHOW TABLE STATUS where name='表名'
- STL优先队列——踩坑日记
priority_queue 可以定义STL中的优先队列,但是优先队列在应用于自己定义的类型时需要重载<运算符,或者通过仿函数来定义比较方法,在定义比较方法的过程中,比较大的坑是STL中对于参数 ...
- 使用selenium模拟知网登录
之前都是用phantomjs和selenium模拟浏览器动作的,后来phantomjs不再更新,就转用chrome了 本次模拟登录的网站是中国知网http://login.cnki.net/login ...
- ASP.net 资源请求漏洞利用工具PadBuster
ASP.net 资源请求漏洞利用工具PadBuster 在ASP.net 网站中,为了便于部署网站项目,开发者往往会将资源(图片.Javascript文件)嵌入到dll文件中.而网页中,会使用WebR ...
- iOS开发——使用基于Autolayout的ScrollView
问题描述: 在使用Autolayout布局方式对ScrollView进行布局时,如果你想做一个可以垂直方向滚动的九宫格类似这样: 拿一行来说,一定不要想当然的尝试去给一行图标进行均匀排列的操作(指 ...