`

Python发送邮件

阅读更多
一、直接调用命令行发送邮件(以及shell中sendEmail)
问题:主题为中文时乱码

主题乱码,网上找了很多,基本上可以确认是头文件编码的问题,通过对主题进行base64编码可以解决这个问题,实现如下:

      # 发送email,username用户名,subject主题,text内容
      def send_email(self,username,subject,text):
          # 邮件内容为utf-8格式
          text = text.encode('utf-8')
          # 主题需要进行base64编码在转成utf8,注意后面这个strip,否则又出现一个换行符
          subject = "=?UTF-8?B?%s?=" % base64.encodestring(subject).strip()
          cmd = "/usr/bin/sendEmail -f test@yoursite.com -t %s  -o message-charset=utf-8 -u \"%s\"  -m \"%s\" " % (username,subject,text)
          try:
              rt = os.popen(cmd).read().split()
              return True
          except Exception,e:
              return False


直接用shell发送邮件的代码如下
subject=`echo -n 任务异常 | base64`
test_time=20130123
sendEmail -f aaa@xxx.com -t target@target.com  -o message-charset=utf-8 -u "=?UTF-8?B?${subject}?="  -m "已经存在任务,${test_time}的任务取消进行"


补充:  正文的换行符是
 \n


如果是ssh调用其他的邮件服务器来发邮件,命令要ssh命令要用双引号括起来,否则换行字符不识别
 ssh root@**** "sendemai -o ...."


二、使用SMTP协议发送邮件

        newusers = 'aaaaaa@xxx.com;cccc@xx.com'
        newccs  = 'bbbbb@xxx.com;adfadf@xxx.com'
        text = '测试邮件'

        mail_host = 'smtp.xxx.com'
        mail_user = 'xxx_service'
        mail_user_full = 'xxx_service@xxx.com'
        mail_pwd = '密码'
        mail_bcc = ''

        #表头信息
        msg = MIMEText(text,'base64', 'utf-8')
        msg['From'] = mail_user_full
        msg['Subject'] = subject
        msg['To'] = newusers
        msg['Cc'] = newccs
        msg['Bcc'] = ''

        
        try:
            s = smtplib.SMTP()
            s.connect(mail_host,'25')
            #login
            s.login(mail_user,mail_pwd)
            #send mail
            print newusers
            print newccs
            print msg.as_string()
            #  邮件人发送和抄送统一放在一起发送,需要在上面的标头信息中进行区分
s.sendmail(mail_user_full,newusers.split(';')+newccs.split(';')+mail_bcc.split(";"),msg.as_string())
            s.close()
            print 'success'
            # print rt
            return True
        except Exception,e:
            # print 'email error'
            print e
            return False
分享到:
评论

相关推荐

    Python发邮件代码

    Python发邮件代码

    Python发邮件源码

    这里我们关注的主题是“Python发邮件源码”,这通常涉及到使用SMTP(Simple Mail Transfer Protocol)来实现邮件的发送。下面我们将深入探讨这个话题,并提供一个实际的Python代码示例。 首先,你需要了解Python中...

    python发邮件详细实例

    详细展示了各种使用python发邮件的程序实例

    python发送邮件脚本

    python发送邮件代码,服务器配置请自行修改,脚本中的地址是内网搭建的邮件服务器。可以结合系统定时任务配置邮件定时发送。希望帮到你

    python 发送邮件简单示例

    简单的python发送邮件的示例,基于python2.7

    python发邮件程序

    python发邮件程序,发送方法:./mail.py 收件人 主题 html内容 图片文件 附件文件'

    python发送邮件的脚本

    半天时间写了个python发送邮件的脚本 作者: jeffery ( email:dungeonsnd@126.com, msn:dungeonsnd@hotmail.com, csdn blog:http://blog.csdn.net/dungeonsnd) 时间: 2011-06-19 地点: SH --------------------------...

    python_发送邮件.docx

    Python发送邮件是编程中常见的需求,特别是在自动化任务和通知系统中。本文档主要介绍了两种使用Python发送邮件的方法,涉及到了smtplib和email模块。 首先,smtplib是Python的标准库,它提供了一种与SMTP(简单...

    基于Python实现多进程的发送邮件.zip

    本课程设计的目标是利用Python实现多进程发送邮件的功能。 首先,我们需要了解Python中的`multiprocessing`模块,它是Python提供的一个标准库,用于实现多进程。通过创建子进程,每个进程可以独立地执行任务,互不...

    使用python通过qq邮箱代理发送邮件

    python发送邮件,通过qq邮箱代理,具体怎么设置请百度(获取qq邮箱授权码),可以发送邮件到邮箱,非常简洁的代码

    python3发送邮件

    使用python3发送QQ电子邮件,发送人为自己,接收人可以一个可以多个。

    python发送邮件(smtplib).docx

    在Python编程中,发送邮件是一项常见的任务,尤其在自动化测试或通知系统中。要实现这一功能,我们可以利用Python内置的`smtplib`和`email`模块。`smtplib`负责处理邮件的发送过程,而`email`则用于构建邮件内容。在...

    Python-Python实现自动发邮件支持HTML富文本

    在Python编程语言中,发送邮件是一项常见的任务,尤其在自动化脚本或系统通知中非常有用。Python通过内置的`smtplib`库提供了对简单邮件传输...解压后,通过阅读和理解代码,可以更好地掌握Python发送邮件的实践技巧。

    python发送邮件源码

    python发送邮件源码有注释

    python发邮件

    使用python发送邮件,使用的是smtplib库

    【Python发送邮件】源码,支持群发和添加附件.py

    这是python发送邮件的源码,支持群发和添加邮件, 文章中有免费下载地址,这里是土豪专用下载地址,

    使用Python发送邮件附件以定时备份MySQL的教程

    标题中的“使用Python发送邮件附件以定时备份MySQL的教程”是指使用Python编程语言编写脚本来自动备份MySQL数据库,并将备份文件作为邮件附件发送出去。这个过程通常涉及到几个关键步骤:数据库备份、文件处理以及...

    Python-python发送邮件报表

    subject = 'Python发送的报表' body = '这是使用Python自动发送的报表邮件。' msg = MIMEMultipart() msg['From'] = sender msg['To'] = receiver msg['Subject'] = subject ``` 若邮件内容包含纯文本和HTML两种...

    python发送邮件的脚本 v0.3

    python发送邮件的脚本 作者: jeffery ( email:dungeonsnd@126.com, msn:dungeonsnd@hotmail.com, csdn blog:http://blog.csdn.net/dungeonsnd) 时间: 2011-07-10 地点: GZ ----------------------------------------...

    Python实现SMTP发送邮件详细教程

    以下是一个基本的Python发送邮件的示例代码: ```python import smtplib from email.mime.text import MIMEText from email.utils import formataddr my_sender = '发件人邮箱账号' my_user = '收件人邮箱账号' ...

Global site tag (gtag.js) - Google Analytics