pop python3_python3 - pop 接收邮件/ smtp 发送邮件

以下通过python3 实现接收和发送邮件,网上相关说明文档很多。请自己查阅,这里只写入代码,

# 实例:通过poplib 模块接收指定账号的邮件并进行解码处理,结果可视化。

#!/opt/python3/bin/python3

# _*_ coding:utf-8 _*_

# Author: Yong

import smtplib

import email as pop_email

from email.parser import Parser

from email.mime.text import MIMEText

from email.utils import formataddr, parseaddr

from email.header import decode_header

import email, poplib, sys

# 接收邮件

def decode_str(s):

'''进行消息解码'''

value, charset = decode_header(s)[0]

# decode_header()返回一个list,因为像Cc、Bcc这样的字段可能包含多个邮件地址,所以解析出来的会有多个元素。上面的代码我们偷了个懒,只取了第一个元素。

if charset:

value = value.decode(charset)

return value

def guess_charset(msg):

'''返回字符编码'''

content_type = msg.get('Content-Type', '').lower()

pos = content_type.find('charset=')

if pos >= 0:

charset = content_type[pos + 8:].strip()

return charset

def pop_mail(pop_server, logname, logpwd):

'''进行接收邮件'''

tmp_list = []

mail_file = open('mail.txt', 'w', encoding='utf-8')

pop_obj = poplib.POP3(pop_server, 110)

try:

pop_obj.user(logname)

pop_obj.pass_(logpwd)

status, mail_list, oct = pop_obj.list()

for i in mail_list: # 根据邮件索引ID,循环每一个邮件

tmp_dict = {} # 临时存储每一个邮件,格式{'From':'', 'To':'', 'Subject':'', 'content':''}

content_list = pop_obj.retr(bytes.decode(i.split()[0])) # 根据索引ID,提取邮件内容

msg_content = '\n '.join([bytes.decode(text) for text in content_list[1]])

msg = Parser().parsestr(msg_content)

# 进行邮件头信息的提取

for head in ['From','To','Subject']:

value = msg.get(head, '') # 获取指定头的内容

if value:

if head == 'Subject':

mess_value = decode_str(value) # 对主题进行解码

else:

hdr, addr = parseaddr(value)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python可以使用smtplib和poplib模块来实现基于SMTPPOP3协议的邮件发送小程序。首先,我们需要使用smtplib模块来连接到SMTP服务器,并通过SMTP协议发送邮件。接着,我们可以使用poplib模块来连接到POP3服务器,通过POP3协议接收邮件。 我们可以使用以下的步骤来实现这个小程序: 1. 导入smtplib和poplib模块 2. 设置SMTP服务器的主机和端口,例如`smtp_server = 'smtp.example.com'`,`smtp_port = 25` 3. 连接到SMTP服务器,例如`smtp_conn = smtplib.SMTP(smtp_server, smtp_port)` 4. 登录到SMTP服务器,例如`smtp_conn.login('username', 'password')` 5. 设置发件人、收件人和邮件内容,例如`from_addr = 'sender@example.com'`,`to_addr = 'recipient@example.com'`,`message = 'This is a test email'` 6. 发送邮件,例如`smtp_conn.sendmail(from_addr, to_addr, message)` 7. 关闭与SMTP服务器的连接,例如`smtp_conn.quit()` 对于接收邮件部分,我们也可以使用以下步骤: 1. 设置POP3服务器的主机和端口,例如`pop_server = 'pop.example.com'`,`pop_port = 110` 2. 连接到POP3服务器,例如`pop_conn = poplib.POP3(pop_server, pop_port)` 3. 登录到POP3服务器,例如`pop_conn.user('username')`,`pop_conn.pass_('password')` 4. 获取邮件列表,例如`num_messages = len(pop_conn.list()[1])` 5. 获取并打印邮件内容,例如`for i in range(num_messages): print(pop_conn.retr(i+1))` 6. 关闭与POP3服务器的连接,例如`pop_conn.quit()` 通过这个Python小程序,我们可以实现基于SMTPPOP3协议的邮件发送和接收功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值