`

python发邮件的代码

阅读更多

写了个发邮件的python代码:

#  -*- coding: utf-8 -*-
#
=================================================
#
#
   描述:    KEmail 发送邮件类
#
#
   作者:    hechangmin
#
#
   时间:    2008-05-30 
#
#
=================================================

import  email
import  mimetypes
from  email.MIMEMultipart  import  MIMEMultipart
from  email.MIMEText  import  MIMEText
from  email.MIMEImage  import  MIMEImage
import  smtplib
from  logger  import  klog

def  sendmail(paramMap):
    
    smtp 
=  smtplib.SMTP()
    msgRoot 
=  MIMEMultipart( ' related ' )
    msgAlternative 
=  MIMEMultipart( ' alternative ' )
    
if  paramMap.has_key( " server " and  paramMap.has_key( " user " and  paramMap.has_key( " password " ):
        
try :
            smtp.set_debuglevel(
1 )
            smtp.connect(paramMap[
" server " ])
            smtp.login(paramMap[
" user " ], paramMap[ " password " ])
        
except :
            klog.error(
" smtp login exception! " )
            
return  False
    
else :
        klog.error(
" Parameters incomplete! " )
        
return  False
    
# 测试发现 邮件其头部信息 比如标题 发送地址 还有抄送之类 和stmp发送的具体信息脱离。
     if  (paramMap.has_key( " subject " and  paramMap.has_key( " from " and  paramMap.has_key( " to " ))  ==  False:
        klog.error(
" Parameters incomplete! " )
        
return  False
    
    msgRoot[
' subject ' =  paramMap[ " subject " ]
    msgRoot[
' from ' =  paramMap[ " from " ]
    
if  paramMap.has_key( " cc " ):
        msgRoot[
' cc ' =  paramMap[ " cc " ]
    
    msgRoot[
' to ' =  paramMap[ " to " ]
    msgRoot.preamble 
=   ' This is a multi-part message in MIME format. '
    msgRoot.attach(msgAlternative)
    TempAddTo 
=  paramMap[ " to " ]
    
    
if  paramMap.has_key( " text " ):
        msgText 
=  MIMEText(paramMap[ " text " ] ,  ' plain ' ' utf-8 ' )
        msgAlternative.attach(msgText)
    
if  paramMap.has_key( " html " ):
        msgText 
=  MIMEText(paramMap[ " html " ],  ' html ' ' utf-8 ' )
        msgAlternative.attach(msgText)
    
if  paramMap.has_key( " image " ):
        fp 
=  open(paramMap[ " image " ],  ' rb ' )
        msgImage 
=  MIMEImage(fp.read())
        fp.close()
        msgImage.add_header(
' Content-ID ' ' <image1> ' )
        msgRoot.attach(msgImage)
    
if  paramMap.has_key( " cc " ):
        TempAddTo 
=  paramMap[ " to " +   " , "   +  paramMap[ " cc " ]
    
       
    
if  TempAddTo.find( " , " !=   - 1 :
        FinallyAdd 
=  TempAddTo.split( " , " )
    
else :
        FinallyAdd 
=  TempAddTo
        
    
# stmp 发送邮件. 发现群发地址用‘,’相隔的字符串,只有一个成功,所以改用列表。
    smtp.sendmail(paramMap[ " from " ], FinallyAdd, msgRoot.as_string())
    smtp.quit()
    
return  True

# ===Test =========================================
if   __name__   ==   ' __main__ '  :
    
    
from  mailconf  import  mailmap
    sendmail(mailmap)
    

其中日志记录器,当然你可以不用。
而mailmap的内容:
mailmap = { }
mailmap['server']   = 邮件服务器
mailmap['user']     = 用户名
mailmap['password'] = 密码
mailmap["from"]     =  发邮件人地址
#mailmap["cc"]       = 抄送地址,以逗号分隔
mailmap["to"]       = 接收人地址
mailmap["subject"]  = 标题
mailmap["text"]     = 信息内容
mailmap["html"]     = '<font color = red ><b>信息内容!  </b></font>'

其中比较有意思的是,发信信息是可以乱写的。而真正和stmp有密切关系的是 :
 smtp.sendmail(paramMap["from"], FinallyAdd, msgRoot.as_string())
也就是上面的什么发信人地址 ,收信人地址 ,抄送人地址都可以是假的。。。

当然愚人节用用还是比较好玩。对高手失效。因为高手觉得奇怪的时候,会去看看邮件的原始属性。。。

哈哈,刚刚我就收到了我梦中情人给我的情书。。。太yy了。改天通知所有同事到楼下集合。我想应该有不少人会上当。

分享到:
评论

相关推荐

    Python发邮件代码

    Python发邮件代码

    Python发邮件源码

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

    python发邮件程序

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

    python3发送邮件

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

    python3 多账户发邮件代码

    下面我们将详细探讨如何使用Python3编写一个多账户发邮件的代码。 首先,我们需要导入必要的库: ```python import smtplib from email.mime.text import MIMEText from email.mime.multipart import ...

    python代码发送邮件的示例

    使用python代码自动发送邮件,运行前请先将邮箱地址及密码改成自己的

    python爬虫发邮件示例demo

    在这个“python爬虫发邮件示例demo”中,我们将探讨如何结合Python的爬虫技术和邮件发送功能,实现自动抓取数据并将其通过电子邮件发送出去。 首先,我们需要了解Python中的两个关键库:`requests` 和 `...

    python发送邮件脚本

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

    python邮件发附件方法

    "Python 邮件发附件方法" Python 邮件发附件方法是指使用 Python 语言发送带附件的电子邮件。该方法使用了 Python 的 email 模块,通过该模块可以创建一个带附件的邮件实例,并将其发送到指定的收件人邮箱中。 ...

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

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

    Python实现邮箱自动化处理

    Python实现邮箱(以QQ邮箱为例)自动化处理,包括自动发送、读取、删除、定时发送... 3.3 读取某发件人的邮件 3.4 读取某收件人的邮件 3.5 将未读邮件标记为已读 4 利用Python筛选邮件 5 利用Python删除指定邮件 案例

    python 代码发送邮件

    python 代码 发送邮件,使用QQ邮箱,要用其他邮箱 根据需要自行修改。使用前先调试成功,密码不是网页登陆邮箱的密码,是QQ邮箱分配的一个什么码。需从网页登陆邮箱后,开启一个功能,邮箱分配的一个密码。

    python 收发邮件代码

    置发件人邮箱和密码,设置收件人邮箱,创建邮件内容,连接到SMTP服务器并发送邮件

    python垃圾邮件过滤利用贝叶斯分类器写的垃圾邮件过滤器,准确率达98.zip

    Python垃圾邮件过滤器是利用机器学习中的贝叶斯分类器实现的一种高效文本分类技术,尤其适用于电子邮件的自动筛选。在给定的项目中,"Filter.py"可能是实现这个功能的核心代码文件,而"G2"和"A"可能是数据集或者辅助...

    python实现下载pop3邮件保存到本地

    此外,使用set_debuglevel可以打印调试信息,帮助开发者了解与邮件服务器交互的详细过程,并据此调整代码以解决问题。 8. 文件内容识别的问题: 由于文件内容是通过OCR扫描获得的,可能存在个别字识别错误或漏识别...

    Python使用POP3和SMTP协议收发邮件的示例代码

    ### Python使用POP3和SMTP协议收发邮件的示例代码详解 #### 一、概述 在互联网技术领域中,电子邮件仍然是一个重要的通信工具。对于软件开发者来说,掌握如何使用编程语言来实现邮件的发送和接收是一项实用技能。...

    selenium+python发送测试报告邮件代码

    selenium+python发送测试报告邮件代码,仅需配置邮件信息即可运行成功

    Python实现自动发送邮件和发送钉钉消息源码

    以上代码展示了如何利用Python实现自动发送钉钉消息和邮件的功能。在实际应用中,你可以根据需要进行定制,例如添加错误处理、日志记录等。同时,还可以结合定时任务库如APScheduler,实现定时发送消息或邮件。通过...

    邮件代码邮件代码邮件代码邮件代码邮件代码邮件代码

    描述中提到的"邮件代码邮件代码邮件代码邮件代码邮件代码"可能是指邮件的编码问题,邮件内容可能包含文本、图片、附件等多种类型的数据,这就需要使用MIME(Multipurpose Internet Mail Extensions)来编码。...

Global site tag (gtag.js) - Google Analytics