`

Python高级编程---SMTP简单邮件传输

阅读更多
#!/usr/bin/python
#-*- coding:utf-8 -*-

'''
Created on 2016年6月25日

@author: Administrator
文件名: smtp.py
'''
from email.mime.text import MIMEText
from email.header import Header
from email.mime.multipart import MIMEMultipart

'''
Python高级编程---SMTP简单邮件传输协议

#http://www.runoob.com/python/python-email.html
'''

import smtplib


#运行该方法需本机安装sendmail访问
def sendmail1():
    sender = '2gzhame@163.com'
    receivers = ['2286268956@qq.com']   #接收邮件
   
    #三个参数: 第一个是文本内容, 第二个plain 设置文本格式, 第三个 utf-8 设置编码
    message = MIMEText('Python 邮件发送测试.....', 'plain', 'utf-8')
    message['From'] = Header('菜鸟教程', 'utf-8')
    message['to'] = Header('测试', 'utf-8')
   
    subject = 'Python SMTP 邮件测试'
    message['Subject'] = Header(subject, 'utf-8')
   
    try:
        smtpObj = smtplib.SMTP('localhost')
        smtpObj.sendmail(sender,receivers,message.as_string())
        print "邮件发送成功"
    except smtplib.SMTPException:
        print "Error:无法发送邮件"




                                  -------2016-06-26 01:10
                                       
                      @modaokeng.yongtaixincun.baiyunqu.guangzhoushi.guangdongsheng




#使用第三方的SMTP服务
def sendmail2():
    #第三方SMTP 服务
    mail_host = "smtp.163.com"
    mail_user = "2gzhame@163.com"
    mail_pass = "***********"
   
    sender = 'gzhame@163.com'
    receivers = ['2286268956@qq.com']   #接收邮件
   
    #三个参数: 第一个是文本内容, 第二个plain 设置文本格式, 第三个 utf-8 设置编码
    message = MIMEText('Python 邮件发送测试.....', 'plain', 'utf-8')
    message['From'] = Header('菜鸟教程', 'utf-8')     #设置发件人
    message['to'] = Header('测试', 'utf-8')          #设置收件人
   
    subject = 'Python SMTP 邮件测试'
    message['Subject'] = Header(subject, 'utf-8')   #设置邮件标题
   
    try:
        smtpObj = smtplib.SMTP()
        smtpObj.connect(mail_host, 25)        # 25为 SMTP端口号
        smtpObj.login(mail_user, mail_pass)
        smtpObj.sendmail(sender,receivers,message.as_string())
        print "邮件发送成功"
    except smtplib.SMTPException:
        print "Error:无法发送邮件"
   


#发送带附件的邮件
def senmail3():
    #发送带附件的邮件,首先要创建MIMEMultipart()实例,然后构造附件,如果有多个附件,可依次构造,最后利用smtplib.smtp发送。
   
    #第三方SMTP 服务
    mail_host = "smtp.163.com"
    mail_user = "gzhame@163.com"
    mail_pass = "********"
   
    sender = 'gzhame@163.com'
    receivers = ['286268956@qq.com']   #接收邮件
   
    #三个参数: 第一个是文本内容, 第二个plain 设置文本格式, 第三个 utf-8 设置编码
    message = MIMEMultipart()
    message.attach(MIMEText('Python 邮件发送附件.....', 'plain', 'utf-8'))
    message['From'] = Header('听雨轩 ', 'utf-8')     #设置发件人
    message['to'] = Header('楓林左岸', 'utf-8')          #设置收件人
   
    subject = 'Python SMTP 发送附件'
    message['Subject'] = Header(subject, 'utf-8')   #设置邮件标题
   
    #构造附件
    att2 = MIMEText(open(r'C:\Users\Administrator\Desktop\test.txt','rb').read(),'base64','utf-8')
    att2["Content-Type"] = 'application/octet-stream'
    att2["Content-Disposition"] = 'attachment;filename="test.txt"'
   
    message.attach(att2)
   
    try:
        smtpObj = smtplib.SMTP()
        smtpObj.connect(mail_host, 25)        # 25为 SMTP端口号
        smtpObj.login(mail_user, mail_pass)
        smtpObj.sendmail(sender,receivers,message.as_string())
        print "邮件发送成功"
    except smtplib.SMTPException, e:
        print "Error:无法发送邮件"
        print e
        '''
        Error:无法发送邮件
        (554, 'DT:SPM 163 smtp12,EMCowABHf6QYuG5XakRCAA--.46705S2 1466873880,please see http://mail.163.com/help/help_spam_16.htm?ip=14.151.131.125&hostid=smtp12&time=1466873880')
        554错误码的定义为:554 DT:SPM 发送的邮件内容包含了未被许可的信息,或被系统识别为垃圾邮件。请检查是否有用户发送病毒或者垃圾邮件;
        '''
   



if __name__ == '__main__':
    senmail3()
分享到:
评论

相关推荐

    Python核心编程第二版

    很不错的python书 第1部分 Python核心  第1章 欢迎来到Python世界   1.1 什么是Python   1.2 起源   1.3 特点   1.3.1 高级   1.3.2 面向对象   1.3.3 可升级   1.3.4 可扩展   1.3.5 可...

    Python网络编程基础

    第10章 简单邮件传输协议(SMTP) 第11章 POP 第12章 IMAP 第4部分 多用途的客户端协议 第13章 FTP 第14章 数据库客户端 第15章 SSL 第5部分 服务器端框架 第16章 SocketSever 第17章 SimpleXMLRPCServer 第18章 CGI...

    Python核心编程第二版(ok)

    Python核心编程第二版(ok) 第1部分 Python核心  第1章 欢迎来到Python世界   1.1 什么是Python   1.2 起源   1.3 特点   1.3.1 高级   1.3.2 面向对象   1.3.3 可升级   1.3.4 可扩展   ...

    简单电子邮件客户端的实现

    基于Java实现的简单电子邮件客户端,按要求设计我们应掌握的知识有(1)计算机网络的基本...要实现所需功能通过查阅资料,决定采用基于JavaMail来设计,利用SMTP协议实现邮件传输,该实现方法较为简单且用户操作便捷

    邮件发送程序案例源码设计基于PyQt5+SMTP设计.rar

    要实现一个基于PyQt5和SMTP协议(简单邮件传输协议)的邮件发送程序,你需要做几件事情: 1、使用PyQt5设计图形用户界面(GUI)。2、编写代码来通过SMTP协议发送邮件。 为了深入了解SMTP协议,我利用Python的smtplib...

    模式识别与智能计算的matlab实现源码-awesome-c:棒极了

    -用C语言进行高级编程 -用于C / C ++的STB单文件公共域库 -c的http请求/响应解析器 -C中的四个功能 -Curl是一个工具,而libcurl是一个用于使用URL语法传输数据的库,它支持FTP,FTPS,HTTP,HTTPS,GOPHER,TFTP,...

    模式识别与智能计算的matlab实现源码-awesome-c:精选的C框架,库和软件的精选清单

    -用C语言进行高级编程 -用于C / C ++的STB单文件公共域库 -c的http请求/响应解析器 -C中的四个功能 -Curl是一个工具,而libcurl是一个用于使用URL语法传输数据的库,它支持FTP,FTPS,HTTP,HTTPS,GOPHER,TFTP,...

    编程必备基础计算机组成原理+操作系统+计算机网络.pdf

    2. 计算机简史及编程语言:计算机的发展经历了从机械计算机到电子计算机的过程,同时编程语言也从机器语言到高级语言的发展。常见的编程语言包括C、C++、Java、Python等。 3. 计算机组成及运算原理:计算机组成包括...

    成都东软学院计算机网络期末考试题库.pdf

    发送电子邮件使用的协议是SMTP,接受电子邮件使用的协议是POP3或IMAP。域名服务器的默认服务器端口是53。DHCP服务器的端口号是67,DHCP客户端的端口号是68。 运输层 运输层的主要功能有应用进程寻址、流量控制、...

    RED HAT LINUX 6大全

    第四部分为Linux编程;第五部分为附录。本书内容翔实、涉及领域广泛,并且提供了详细的例子和大量的参考资料(包括书籍、电子文档和Internet站点),是一本学习、使用和管理Linux不可多得的好书。 目 录 译者序 前言...

Global site tag (gtag.js) - Google Analytics