使用python发邮件
2015-01-14 16:40
288 查看
使用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 smtp发邮件代码
- 企业邮箱使用python发邮件
- Python使用网易邮箱发邮件
- 使用python发邮件
- python实现SMTP发邮件(不需要注册邮箱使用邮箱的SMTP服务)
- python,java使用163邮箱发邮件
- python使用qq发邮件
- python实现的使用gmail发邮件的代码段
- python使用xlsxwriter模板完成nginx趋势图,并自动发邮件
- 【python】使用python smtplib库发邮件添加cc,bcc
- 使用python给outlook多个联系人发邮件
- 二种python发送邮件实例讲解(python发邮件附件可以使用email模块实现)
- 使用python 发邮件
- [Python]使用smtplib类库发邮件
- 二种python发送邮件实例讲解(python发邮件附件可以使用email模块实现)
- python发邮件的使用方法!
- python使用两种发邮件的方式smtp和outlook示例
- 关于在组件GIS开发中使用Python的一点补充说明