send mail

原创 2012年03月27日 14:19:22
#!/usr/bin/env python
# -*- coding: cp936 -*-


#-------------------------------------------------------------
#author: Jack_wind
#purpose: The summary of three ways of send mails
#time: 13th Dec 2011
#-------------------------------------------------------------


#-------------------------------------------------------------
#SMTP.set_debuglevel(level)  default: False
#SMTP.docmd(cdm[,argstring]) send command to the server
#-------------------------------------------------------------


import smtplib, time


class SmtpWind:
    def __init__(self, fromaddr, toaddrs):
        self._fromaddr = fromaddr
        self._toaddrs = toaddrs
        self._label = 'potential'
        self._subject = '['+self._label+'] automatic send test'
        self._content = ''
        self._html_header = ''
        self._html_footer = ''
        self._time = ''
        self._issend = True
        self._smtp = 0
        
    def send_by_general(self):
        if((not self._fromaddr) and (not self._toaddrs)):
            print('The address of the send and the receive is empty')
        
        self._label = 'general'
        self._subject = '['+self._label+'] automatic send test'
        self._content = ('Subject: %s\r\nFrom: %s\r\nTo: %s\r\n'
            % (self._subject, self._fromaddr, ', '.join(self._toaddrs)))
        
        self._time = time.strftime("%H:%M:%S", time.localtime())
        self._content += "Hi, how's it going!\n\n"
        self._content += self._time
        
        for toaddr in self._toaddrs:
            self._smtp = smtplib.SMTP()
            self._smtp.connect("smtp.ea-angel.com", "25")
            self._smtp.login('wanglf@ea-angel.com', 'w359f953l359')
            self._smtp.sendmail(self._fromaddr, toaddr, self._content)
            self._smtp.quit()
        print('send mail sucess')
        
    def send_by_html(self):
        if((not self._fromaddr) and (not self._toaddrs)):
            print('The address of the send and the receive is empty')
            
        self._label = 'html'
        self._subject = '['+self._label+'] automatic send test'
        self._content = ('Subject: %s\r\nFrom: %s\r\nTo: %s\r\nContent-Type: text/html; charset=ISO-8859-1\r\n\r\n'
            % (self._subject, self._fromaddr, ', '.join(self._toaddrs)))
        
        self._html_header = """<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
        <html>
        <head>
        <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
        <title></title>
        </head>
        <body>
        """
        
        self._html_footer = """</body>
        </html>
        """
        
        self._content += "details of executed test: <br>"
        self._content += self._html_header
        s1 = "<table border=\"1\" cellpadding=\"2\" cellspacing=\"2\" width=\"800\"><tbody>"
        s2 = "<tr><td valign=\"top\">" + str(1) + "<br></td>"
        s2 += "<td bgcolor=\"#33ff33\" valign=\"top\">OK<br></td>"
        s2 += "<td valign=\"top\">my pleasure<br></td></tr>"
        s1 += s2 + '\n'
        s1 += "</tbody></table>"
        s1 += "<br>Best Wishes"
        self._content += s1
        self._content += self._html_footer
        
        self._time = time.strftime("%H:%M:%S", time.localtime())
        self._content += self._time
        
        for toaddr in self._toaddrs:
            self._smtp = smtplib.SMTP("smtp.ea-angel.com", "25")
            self._smtp.login('wanglf@ea-angel.com', 'w359f953l359')
            self._smtp.sendmail(self._fromaddr, toaddr, self._content)
            self._smtp.quit()
        print('send mail sucess')
        
    def send_by_email(self):
        import mimetypes
        from email.mime.text import MIMEText
        from email.mime.multipart import MIMEMultipart
        from email.mime.image import MIMEImage
        
        self._label = 'email'
        self._subject = '['+self._label+'] automatic send test'
            
        content = MIMEMultipart()
        content['From'] = self._fromaddr
        content['To'] = ', '.join(self._toaddrs)
        content['Subject'] = self._subject
        
        self._time = time.strftime("%H:%M:%S", time.localtime())
        text = MIMEText("Hi, how's it going!\n\n%s" % self._time)
        content.attach(text)
        
        filename = r'e:/test.py'
        ctype, encoding = mimetypes.guess_type(filename)
        if ctype is None or encoding is not None:
            ctype = 'application/octet-stream'
        maintype, subtype = ctype.split('/', 1)
        att = MIMEImage((lambda f: (f.read(), f.close()))(open(filename, 'rb'))[0], _subtype=subtype)
        att.add_header('Content-Disposition', 'attachment', filename=filename.split('/')[1])
        content.attach(att)
        
        for toaddr in self._toaddrs:
            self._smtp = smtplib.SMTP("smtp.ea-angel.com", "25")
            self._smtp.login('wanglf@ea-angel.com', 'w359f953l359')
            self._smtp.sendmail(self._fromaddr, toaddr, content.as_string())
            self._smtp.quit()
        print('send mail sucess')
        
        
        
        
if __name__ == "__main__":
    fromaddr = 'wanglf@ea-angel.com'
    toaddrs = []
    toaddrs.append('wanglf@ea-angel.com')
    #toaddrs.append('wanglf359@sina.com')
    
    #smtp_general = SmtpWind(fromaddr, toaddrs)
    #smtp_general.send_by_general()
    
    #smtp_html = SmtpWind(fromaddr, toaddrs)
    #smtp_html.send_by_html()
    
    smtp_email = SmtpWind(fromaddr, toaddrs)
    smtp_email.send_by_email()

javamail 调用office365的邮箱发送邮件----报错到成功问题记录

发送邮件的时候首先报错ssl shakehands失败,后来网上搜到通过InstallCert.java来从服务器上下载证书,下载证书的时候报错如下:javax.net.ssl.SSLExceptio...
  • baidu_24638745
  • baidu_24638745
  • 2016年04月13日 14:50
  • 3554

Laravel 发送邮件(最简单的讲解!)

Laravel集成了SwiftMailer库进行邮件发送,邮件配置文件位于config/mail.php:、 return [ 'driver' => env('MAIL_DRIVER', ...
  • qiandublog
  • qiandublog
  • 2016年08月19日 11:06
  • 8723

send Mail

namespace tMail{ ///  /// WebForm1 的摘要说明。 ///  public class WebForm1 : System.Web.UI.Page {         ...
  • drk928
  • drk928
  • 2005年04月05日 16:46
  • 664

Send mail

1.      public static void SM(string mFrom, string mTo, string mCC, string mSubject, string mBody)  ...
  • hbfly
  • hbfly
  • 2007年11月05日 14:17
  • 184

SEND MAIL

   DATA: lt_receivers LIKE somlreci1 OCCURS 1 WITH HEADER LINE,         lw_doc_data LIKE sodocch...
  • zjut_xiongfeng
  • zjut_xiongfeng
  • 2016年09月20日 10:40
  • 239

send mail

LINUX     系统管理人员经常会遇到对于设备或者任务的预警与通知,通常情况有发送短信、邮件等方式。发送短信一般来说需要有短信猫(硬件)或者调用libfetion给飞信用户发送。...
  • linsa0517
  • linsa0517
  • 2014年05月12日 10:36
  • 486

发送邮件Failure sending mail

///         /// 发送邮件         ///         /// 目的邮箱地址         /// 邮件主题         /// 邮件内容       ...
  • zyloveyrf
  • zyloveyrf
  • 2011年08月31日 17:20
  • 1477

[备忘]Ruby on Rails Send Mail实例

csdn的编辑器终于改版了!庆贺庆贺前几天做了个Ruby on Rails Send Mail的例子,测试成功!代码不多但是总记不住郁闷,所以还是写下来以备后用吧:)# --Test E-Mai...
  • yehell
  • yehell
  • 2008年07月16日 11:46
  • 1074

邮件服务器问题总结

邮件服务器问题总结 一、 无配置TLS 1.1异常信息:Could not convert socket to TLS org.springframework.mail.MailSendExcepti...
  • xiaojiahao_kevin
  • xiaojiahao_kevin
  • 2017年01月04日 22:14
  • 2992

laravel mail

环境配置在config/mail.php 中配置'driver' => env('MAIL_DRIVER', 'smtp'), 'host' => env('MAIL_HOST', 'smtp.mai...
  • Su_wei_peng
  • Su_wei_peng
  • 2017年11月21日 10:12
  • 298
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:send mail
举报原因:
原因补充:

(最多只允许输入30个字)