#

-*- 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

'

,

'

'

)

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)

python发邮件给女朋友代码_python发邮件的代码相关推荐

  1. python发邮件有什么意思_python发邮件要装什么

    在介绍具体的实现python发邮件的具体操作之前,我觉得有必要介绍下SMTP,更有助于理解python发邮件的实现原理.SMTP协议属于TCP/IP协议簇,即简单邮件传输协议,它是一组用于由源地址到目 ...

  2. python绘制柱状图代码_python绘制双柱形图代码实例

    图表是比干巴巴的表格更直观的表达,简洁.有力.工作中经常遇到的场景是,有一些数值需要定时的监控,比如服务器的连接数.活跃用户数.点击某个按钮的人数,并且通过邮件或者网页展示出来.当我们想关注比数值本身 ...

  3. python聊天程序程序代码_python聊天程序实例代码分享

    代码简单,直接看代码吧: 代码如下: import socket import threading import re #import Tkinter def ser(): s=socket.sock ...

  4. python3版本800行的代码_Python number.long_to_bytes方法代码示例

    本文整理汇总了Python中Crypto.Util.number.long_to_bytes方法的典型用法代码示例.如果您正苦于以下问题:Python number.long_to_bytes方法的具 ...

  5. python发邮件给女朋友代码_python实现邮件发送完整代码(带附件发送方式)

    实例一:利用SMTP与EMAIL实现邮件发送,带附件(完整代码) __author__ = 'Administrator' #coding=gb2312 from email.Header impor ...

  6. python邮件发送哪个好_python发邮件(一)

    复习模块 如果我们要发送邮件,就需要用到smtplib模块的以下方法: 1.import smtplib       #引入smtplib模块 2.server = smtplib.SMTP()    ...

  7. python中星号怎么打出来_Python打印“菱形”星号代码方法

    本人是一名python初学者,刚刚看到一道有趣的python问题,"用python如何在编译器中打印出菱形图案?" 因此决定尝试一下,代码不多,仅供参考. 代码 def print ...

  8. js如何运行python代码_python中执行javascript代码

    python中执行javascript代码: 1.安装相应的库,我使用的是PyV8 2.import PyV8 ctxt = PyV8.JSContext() ctxt.enter() func = ...

  9. python模拟全部代码_Python模拟登陆实现代码

    下面分享一个使用Python进行网站模拟登陆的小例子. 原理 使用Cookie技术,绕开网站登录验证.要使用到cookielib库.流程: 创建一个保存Cookie的容器,可选的有CookieJar, ...

最新文章

  1. 知乎热议:国家何时整治程序员的高薪现象?网友:用命和头发换的钱都被人眼红!...
  2. java 判断是否是日期_java判断是否为日期的方法(附代码)
  3. linux 中断程序设计,Linux中断编程
  4. python3.5安装scrapy_Python3.5 win7安装scrapy
  5. LeetCode 416. 分割等和子集(动态规划)
  6. tcp状态机-三次握手-四次挥手以及常见面试题
  7. Activity(二)
  8. TensorFlow中的多线程
  9. 交互系统的构建之(一)重写Makefile编译TLD系统
  10. Fckeditor漏洞汇总
  11. android 动态画直线,Android使用自定义view在指定时间内匀速画一条直线的实例代码...
  12. php二分查找例题,PHP实现的二分查找算法实例分析
  13. IIS 7.0 中的 HTTP 状态代码
  14. thinkphp3.2.3 自动验证 正则验证
  15. Swift基本运算符详解
  16. 跟我一起数据挖掘(22)——spark入门
  17. 关于工信部要求品牌电脑强制预装“绿坝-花季护航”软件
  18. H5 调用摄像头进行拍照
  19. android 蓝牙连接苹果手机号码,苹果与android蓝牙连接怎么实现
  20. LaTeX 文档类型

热门文章

  1. 如何将SAP UI5应用配置到SAP云平台Fiori Launchpad里
  2. OPA 1 - testsuite.opa.html
  3. SAP UI5 datajs.js response handling
  4. UI5界面绘制的机制,以及老旧dom节点的清除机制
  5. When is abap.js loaded by Launchpad
  6. SalesArea F4 help implementation
  7. 如何处理My lead fiori应用的buffer问题
  8. find out the service list changed with given user which have item category group
  9. ABAP Authorization object where used list in tcode SUIM
  10. 我回答的一个粉丝关于用编程语言模拟SAP事务的问题