python 电子邮件

POP:

第一个用于下载邮件的协议称为邮局协议(Post Office Protocal,POP)。

POP的目的是让用户的工作站可以访问邮箱服务器 里的邮件,并在工作站中,通过简单邮件传输协议(SMTP)将邮件发送到邮件服务器”。POP 协议的最新版本是第 3 版,也称为 POP3。

IMAP :

IMAP 旨在提供比 POP 更完整的解决方案,但它也因此比 POP 更复杂。例如,IMAP 非 常适合今天的需要,因为用户需要通过不同的设备使用电子邮件,如台式机、笔记本电脑、 平板电脑、手机、视频游戏系统等。POP 无法很好地应对多邮件客户端,尽管 POP 应用依然 广泛,但大部分情况下已经被废弃了。注意,许多 ISP 当前只提供 POP 来接收(用 SMTP 发 送)邮件。希望今后 IMAP 能得到更多应用。

# -*- coding:utf-8 -*-
'''两个创建电子邮件消息的示例,即 make_mpa_msg()和 make_img_msg(),
两者都创建了一条带有附件的电子邮件消息。前者创建并发送了一条多部分消息,后者创建
并发送了一条电子邮件消息,其中含有一幅图片。'''
#这个python2 脚本创建并发送了两种不同类型的电子邮件消息
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from smtplib import SMTP
#mutipart alternative: text and html
def make_mpa_msg():
    email = MIMEMultipart('alternatice')
    text = MIMEText('Hello World! \r\n','plain')
    email.attach(text)
    html = MIMEText(
        '

Hello World!

' '','html') email.attach(html) return email """多部分选择消息通常包含两部分,一是以纯文本表示的邮件消息正文,以及等价的 HTML 格式。由邮件客户端来决定显示哪一部分。例如,基于 Web 的电子邮件系统会显示 HTML 版本,而基于命令行的邮件阅读器只会显示纯文本版本。 为了创建这种类型的消息,需要使用 email.mime.multiple.MIMEMultipart 类,并传递 alternative 作为唯一的参数来实例化这个类。如果不传递这个参数,则前面的纯文本和 HTML 会分别作为消息中的附件,这种情况下,有些邮件系统会同时显示这两部分的内容。 这两部分都会用到 email.mime.text.MIMEText 类,因为这两部分内容都是纯文本。每个 部分都要附加到邮件中,因为这两部分是在邮件创建之后才创建的。""" # multipart:images def make_img_msg(fn): f = open(fn,'r') data = f.read() f.close() email = MIMEImage(data, name=fn) email.add_header('Content-Disposition', 'attachment;filename="%s' % fn) return email """make_img_msg()函数使用一个文件名作为参数。使用文件中的数据生成一个新的 email.mime.image.MIMEImage 实例。添加一个 Content-Disposition 头,接着将消息返回给用户。""" def sendMsg(fr, to, msg): s = SMTP('localhost') errs = s.sendmail(fr, to, msg) s.quit() """sendMsg()的唯一目的是获取基本的电子邮件发送信息(发件人、收件人、消息正文), 接着传送消息,然后返回给调用者。 要查看更详尽的输出内容,可以试试这个扩展:s.set_debuglevel(True),其中 s 是 smtplib.SMTP 服务器。最终,与前面一样,因为许多 SMTP 服务器需要登录,所以需要在这里登录(在登录 之后,发送电子邮件消息之前)。""" if __name__ == '__main__': print 'Sending multipart alternative msg ...' msg = make_mpa_msg() msg['From'] = SENDER msg['To'] = ', '.join(RECIPS) msg['Subject'] = 'multipart alternative test' sendMsg(SENDER, RECIPS, msg.as_string()) print 'Sending image msg...' msg = make_img_msg(SOME_IMG_FILE) msg['From'] = SENDER msg['To'] = ', '.join(RECIPS) """这是这段脚本的主要部分,它仅仅测试这两个函数。用这两个函数创建消息,然后添加 From、To、Subject 字段,然后将消息传送给这些收件人。当然,为了让应用能够工作,需要 填充下面的字段:SENDER、RECIPS、SOME_IMG_FILE。"""

 

你可能感兴趣的:(Python)