python使用smtp上传邮件,使用pop3下载邮件。由于上传后立刻下载了,所以有时不会再在网页邮箱中有通知。

可设置邮件的收发人,主题,内容。并以163邮件为例,使用smtp发送了一个普通文本邮件,使用pop3协议读取了邮件列表,并下载了第一个邮件,并进行了解析,分别在和下进行试验。

下代码

#coding:utf-8

from smtplib import SMTP

from poplib import POP3

from time import sleep

print("=====================SMTP发邮件和POP3收邮件=====================");

SMTPSVR = '; #smtp服务器地址

POP3SVR = '; #pop3服务器地址

SENDER="aaaaaaa@163.com" #用户名,换成自己的

PASSWORD="aaaaaaa" #密码,换成自己的

RECIPS=["aaaaaaa@163.com"] #这里接收人也设置为自己

origmsg = '''\

From: %(who)s

To: %(who)s

Subject: first test

Hello World!

''' % {'who': SENDER}

#使用SMTP完成邮件的发送

sendSvr = SMTP(SMTPSVR) #创建一个smtp发送对象

(SENDER, PASSWORD) # 登录操作

errs = (SENDER,RECIPS,origmsg) #参数:发件人,收件人,邮件整体(消息头和消息体的字符串表示)

()

assert len(errs) == 0, errs #,assert返回为假就会触发异常

print("smtp发送邮件完成")

sleep(10) # 睡眠10秒钟,等待邮件被投递,让服务器完成消息的发送和接收。sleep单位秒

#使用pop3完成邮件的获取

recvSvr = POP3(POP3SVR) #创建一个pop3接收对象

recvSvr.user(SENDER) #设置用户名

recvSvr.pass_(PASSWORD) #设置密码

emailist = recvSvr.stat() #获取邮件列表

rsp, msg, siz = recvSvr.retr(emailist[0]) #下载第一个邮件

sep = m('') #邮件头和邮件正文使用空白行进行分割,这里定位空白行的位置.是不是应该是定位\n

recvBody = msg[sep+1:] #根据空白行获取邮件正文

print(recvBody)

print("pop3接收邮件完成")

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42

下由于默认字符串为unicode,而邮件发送参数只接收str的字符串,所以再发送前先将字符串从unicode转化为str

下代码如下

#coding:utf-8

from smtplib import SMTP

from poplib import POP3

from time import sleep

print("=====================SMTP发邮件和POP3收邮件=====================");

SMTPSVR = '; #smtp服务器地址

POP3SVR = '; #pop3服务器地址

SENDER="aaaaaaa@163.com" #用户名,换成自己的

PASSWORD="aaaaaaa" #密码,换成自己的

RECIPS=["aaaaaaa@163.com"] #这里接收人也设置为自己

origmsg = '''\

From: %(who)s

To: %(who)s

Subject: first test

Hello World!

''' % {'who': SENDER}

#使用SMTP完成邮件的发送

sendSvr = SMTP(SMTPSVR) #创建一个smtp发送对象

(SENDER, PASSWORD) # 登录操作

errs = (SENDER,RECIPS,origmsg) #参数:发件人,收件人,邮件整体(消息头和消息体的字符串表示)

()

assert len(errs) == 0, errs #,assert返回为假就会触发异常

print("smtp发送邮件完成")

sleep(10) # 睡眠10秒钟,等待邮件被投递,让服务器完成消息的发送和接收。sleep单位秒

#使用pop3完成邮件的获取

recvSvr = POP3(POP3SVR) #创建一个pop3接收对象

recvSvr.user(SENDER) #设置用户名

recvSvr.pass_(PASSWORD) #设置密码

emailist = recvSvr.stat() #获取邮件列表

rsp, msg, siz = recvSvr.retr(emailist[0]) #下载第一个邮件

print(msg)

#sep = m('') #查找列表中""空白元素,空白元素后面为邮件正文

#recvBody = msg[sep+1:] #根据空白元素定位获取邮件正文

print("pop3接收邮件完成")

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41

本文只试验了163邮件,读者可以按下面的主机地址,试验其他邮箱。但并不是每种邮箱都能成功。

gmail)

POP3服务器地址:pop.gmail.com(SSL启用 端口:995)

SMTP服务器地址:smtp.gmail.com(SSL启用 端口:587)

21cn.com:

POP3服务器地址:pop.21cn.com(端口:110)

SMTP服务器地址:smtp.21cn.com(端口:25)

:

POP3服务器地址:pop3..cn(端口:110)

SMTP服务器地址:smtp..cn(端口:25)

:

POP3服务器地址:pop.(端口:110)

SMTP服务器地址:smtp.(端口:25)

163.com:

POP3服务器地址:pop.163.com(端口:110)

SMTP服务器地址:smtp.163.com(端口:25)

263.net:

POP3服务器地址:pop3.263.net(端口:110)

SMTP服务器地址:smtp.263.net(端口:25)

ya:

POP3服务器地址:pop.mail.ya

SMTP服务器地址:smtp.mail.ya

263.net.cn:

POP3服务器地址:pop.263.net.cn(端口:110)

SMTP服务器地址:smtp.263.net.cn(端口:25)

Foxmail:

POP3服务器地址:POP.foxmail.com(端口:110)

SMTP服务器地址:SMTP.foxmail.com(端口:25)

sinaVIP

POP3服务器:pop3.vip. (端口:110)

SMTP服务器:smtp.vip. (端口:25)

:

POP3服务器地址:pop3.(端口:110)

SMTP服务器地址:smtp.(端口:25)

e:

POP3服务器地址:pop.e

SMTP服务器地址:smtp.e

x263.net:

POP3服务器地址:pop.x263.net(端口:110)

SMTP服务器地址:smtp.x263.net(端口:25)

ya.cn:

POP3服务器地址:pop.mail.ya.cn(端口:995)

SMTP服务器地址:smtp.mail.ya.cn(端口:587)

雅虎邮箱POP3的SSL不启用端口为110,POP3的SSL启用端口995;SMTP的SSL不启用端口为25,SMTP的SSL启用端口为465

QQ邮箱 QQ企业邮箱

POP3服务器地址:(端口:110) POP3服务器地址: (SSL启用 端口:995)

SMTP服务器地址: (端口:25) SMTP服务器地址:(SSL启用 端口:587/465)

SMTP服务器需要身份验证

126邮箱 HotMail

POP3服务器地址:pop.126.com(端口:110) POP3服务器地址: (端口:995)

SMTP服务器地址:smtp.126.com(端口:25) SMTP服务器地址: (端口:587)

c: 139邮箱

POP3服务器地址:pop.c(端口:110) POP3服务器地址:POP.139.com(端口:110)

SMTP服务器地址:smtp.c(端口:25) SMTP服务器地址:SMTP.139.com(端口:25)

1.《如何下载邮箱里的邮件、qq邮箱如何下载邮件》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《如何下载邮箱里的邮件、qq邮箱如何下载邮件》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/keji/3219869.html