使用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赋普通字符串,邮件发过去后一查邮件源文件,竟也是编码后的,。。。,无语

最新文章

  1. jquery插件封装成seajs模块
  2. AJXA!让体验更美好
  3. A:手把手教Wordpress仿站(基础)
  4. stimulsoft Report报表使用笔记
  5. html5头部说明
  6. javascript——拖拽(完整兼容代码)
  7. Windows bat with adb
  8. python+sqlite3
  9. nomasp 博客导读:Android、UWP、Algorithm、Lisp(找工作中……
  10. windows下如何安装配置mysql-5.7-m14-winx64(zip格式的安装)
  11. Java历程-初学篇 Day02变量,数据类型和运算符
  12. session 与 coolie 的区别与联系
  13. 我的Java设计模式-原型模式
  14. bugku misc writeup(一个普通的压缩包)
  15. https://blog.csdn.net/u011489043/article/details/68488459
  16. 微服务之consul(一)
  17. 如何下载最新Xshell版本、免费官方正版软件的技巧过程
  18. js中字符串和数组的使用
  19. Nginx详解七:Nginx基础篇之Nginx官方模块
  20. 各常用分类算法的优缺点总结:DT/ANN/KNN/SVM/GA/Bayes/Adaboosting/Rocchio

热门文章

  1. php魔术方法——属性重载方法
  2. ROBOTS.TXT屏蔽笔记、代码、示例大全
  3. 布局共享(列如所有activity拥有相同的布局部分,比如actionbar,在BaseActivity中写入布局)
  4. 一些常用的js,jquerry 样例
  5. linux下查看和设置软件的安装路径
  6. 调用Android系统设置中的Intent
  7. 关于Android的一些理解
  8. LeetCode_Restore IP Addresses
  9. 智能卡安全机制比较系列(五) StarCOS
  10. java开发经验分享(二)