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

转载于:https://www.cnblogs.com/fatterbetter/p/4224294.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值