使用python发邮件
使用python发邮件
网上有很多发邮件的例子,本人在网上找了一份,稍加修改后使用
上源码
# encoding=utf-8
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.header import Header
import smtplib
class SendEmail:
def __init__(self, host, user, passwd):
lInfo = user.split("@")
self._user = user
self._account = lInfo[0]
self._me = self._account + "<" + self._user + ">"
server = smtplib.SMTP()
server.connect(host)
server.login(self._account, passwd)
self._server = server
def sendTxtMail(self, to_list, sub, content, subtype='html', displayName=''):
msg = MIMEText(content, _subtype=subtype, _charset='utf-8')
msg['Subject'] = Header(sub, 'utf-8')
if displayName == '':
msg['From'] = self._me
else:
msg['From'] = Header(displayName, 'utf-8').__str__() + " <" + self._user + ">"
msg['To'] = ";".join(to_list)
try:
self._server.sendmail(self._me, to_list, msg.as_string())
return True
except Exception, e:
print str(e)
return False
主要说下我改动的地方,我这想在发送邮件中带有自己定义的名称,所以在发送函数中最后加了一个参数,使用传入的名称与原邮箱地址拼在一起,放入From字段中,就可以使收件人看到我定义的名称了
需注意的地方是,给From字段赋值时,最好按邮件标准格式进行编码,即使用email.Header进行编码,然后使用__str__()方法取得编码后的字符串,最后再拼上邮箱地址
另外,给Subject字段赋值时直接使用了Header对象,是因为我在赋值时并未处理字符串,可直接传给Subject使用。最后再啰嗦一句,我直接给Subject赋普通字符串,邮件发过去后一查邮件源文件,竟也是编码后的,。。。,无语
使用python发邮件的更多相关文章
- python发邮件遇到的端口号问题
在学习使用python发邮件的过程中, 遇到了一个问题:由于测试的时候使用的是QQ邮箱,要求必须使用SSL/TLS加密,所以有了下面的代码, from email.mime.text import M ...
- 如何用python发邮件
python发送各类邮件的主要方法 一.相关模块介绍 发送邮件主要用到了smtplib和email两个模块,这里首先就两个模块进行一下简单的介绍: 1.smtplib模块 smtplib.SM ...
- Python 发邮件例子
Python 发邮件例子 例子 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Date : 2019-04-23 16:12:33 # @Autho ...
- [转]简单三步,用 Python 发邮件
https://zhuanlan.zhihu.com/p/24180606 0. 前言 发送电子邮件是个很常见的开发需求.比如你写了个监控天气的脚本,发现第二天要下雨,或者网站上关注的某个商品降价了, ...
- Python—发邮件总结
来自: http://my.oschina.net/jhao104/blog/613774 1.登录SMTP服务器 首先使用网上的方法(这里使用163邮箱,smtp.163.com是smtp服务器地址 ...
- 人生苦短之Python发邮件
#coding=utf-8 import smtplib from email.mime.base import MIMEBase from email.mime.image import MIMEI ...
- python 发邮件-带附件-文本-html
#!/usr/bin/python # encoding=utf-8 # Filename: send_email.py from email.mime.image import MIMEImage ...
- python 发邮件 utf-8
import smtplib from operator import itemgetter, attrgetter from email.mime.text import MIMEText from ...
- 用python发邮件实例
发QQ邮件 首先确认发件方是否打开了SMTP服务,去QQ邮箱的设置中查看,如果没有请自行开启. from email.header import Header from email.mime.text ...
随机推荐
- Jquery简略API使用
都是个人随手笔记,既然开通了博客园就分享给大家.谨做为参考,具体大家自己测试以及使用 ★ $() ★ JQ的一个万能获取对象的函数(获取跟CSS获取元素是一样的)$(function(){}); 替代 ...
- smarty练习:数据的增删改
根据数据库中的三张表格:timu,xuanxiang,kemu来进行数据的增删改查,并且使用smarty模版将前端与后台分离开来 三张表格: 主页面后台 main.php: <?php //引入 ...
- PHP扩展开发(3)-config.m4
1. 宏命令 1.1. dnl 注释 1.2. 扩展的工作方式 1.2.1) PHP_ARG_WITH不需要第三方库 1.2.2) PHP_ARG_E ...
- Python番外之 阻塞非阻塞,同步与异步,i/o模型
1. 概念理解 在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式: 同步/异步主要针对C端: 同步: 所谓同步,就 ...
- Python 多线程 队列 示例
Python3,开一个线程,间隔1秒把一个递增的数字写入队列,再开一个线程,从队列中取出数字并打印到终端 #! /usr/bin/env python3 import time import thre ...
- 容器 list
(1) 插入操作,不能使用MyTestContain.begin()+3 之类?!(要对数据进行复制) list<int>::iterator pr=MyTestContain.begin ...
- F#(1)
如果你也会C#,那不妨了解下F#(1):F# 数据类型 简单介绍 F#(与C#一样,念作“F Sharp”)是一种基于.Net框架的强类型.静态类型的函数式编程语言.可以说C#是一门包含函数式编程 ...
- java decompiler如何去掉行号
今天想反编译jar包保存源代码,默认前面加了行号,不知道这个小工具如何设置去掉行号? 反编译后: 找到它的安装路径,我的是:C:\Program Files\decomp.然后将该路径加入到环境变量p ...
- pidof,pgrep进程名查PID, /proc目录由pid查进程名
pidof,pgrep进程名查PID cat /proc/4990/status|grep "name",由pid查进程名
- XSS初体验
主要内容 什么是XSS? XSS的危害有哪些? 常见的XSS漏洞 如何防范XSS? 什么是XSS? 跨站脚本攻击(Cross Site Scripting),是一种 Web 应用程序的漏洞,当来自 ...