python实现QQ邮箱/163邮箱的邮件发送

yipeiwu_com5年前Python基础

QQ邮箱/163邮箱的邮件发送:py文件发送邮件内容相当于一个第三方的客户端,借助于QQ/163邮箱服务器来发送的邮件。

主要配置:

  • 导入模块——import    smtplib
  • 邮箱SMTP服务器的主机地址,HOST——将来使用这个服务器收发邮件。
  • 配置服务器端口,PORT ——默认的邮件端口是25(QQ邮箱是:465)
  • 指定发件人和收件人,(FROM、TO)——发件人只有一个,收件人有多个,收件人格式:‘邮箱1,邮箱2,...'
  • 邮件标题(SUBJECT)
  • 邮件内容(CONTENT)

邮箱相关信息的截图:

QQ邮箱


网易邮箱


示例代码:

QQ邮箱

# 用于发送邮件的模块
import smtplib
 
# QQ邮件
# 1> 配置邮箱SMTP服务器的主机地址,将来使用这个服务器收发邮件。
HOST = 'smtp.qq.com'
# # 2> 配置服务的端口,默认的邮件端口是25.
PORT = '465'
# # 3> 指定发件人和收件人。
FROM = '987456123@qq.com'
TO = '1521111111@qq.com'
# # 4> 邮件标题
SUBJECT = '这是一封测试邮件'
# # 5> 邮件内容
CONTENT = '这是<987456123@qq.com>发送过来的邮件。请注意查收!'
 
# # 创建邮件发送对象
# # 普通的邮件发送形式
# # smtp_obj = smtplib.SMTP()
 
# # 数据在传输过程中会被加密。
smtp_obj = smtplib.SMTP_SSL()
 
# # 需要进行发件人的认证,授权。
# # smtp_obj就是一个第三方客户端对象
smtp_obj.connect(host=HOST, port=PORT)
 
# # 如果使用第三方客户端登录,要求使用授权码,不能使用真实密码,防止密码泄露。
res = smtp_obj.login(user=FROM, password='zsgncmacktxkbdhb')
print('登录结果:',res)
 
# # 发送邮件
msg = '\n'.join(['From: {}'.format(FROM), 'To: {}'.format(TO), 'Subject: {}'.format(SUBJECT), '', CONTENT])
smtp_obj.sendmail(from_addr=FROM, to_addrs=[TO], msg=msg.encode('utf-8'))

网易邮箱

import smtplib
# 网易163邮箱
HOST = 'smtp.163.com'
# 2> 配置服务的端口,默认的邮件端口是25.
PORT = '25'
# 3> 指定发件人和收件人。
FROM = 'gaoteacheradmin@163.com'
TO = 'testadmin@163.com,123456789@qq.com'
# 4> 邮件标题
SUBJECT = 'haha'
# 5> 邮件内容
CONTENT = 'haha<testadmin@163.com>haha'
 
# 创建邮件发送对象
# 普通的邮件发送形式
smtp_obj = smtplib.SMTP()
 
# 数据在传输过程中会被加密。
# smtp_obj = smtplib.SMTP_SSL()
 
# 需要进行发件人的认证,授权。
# smtp_obj就是一个第三方客户端对象
smtp_obj.connect(host=HOST, port=PORT)
 
# 如果使用第三方客户端登录,要求使用授权码,不能使用真实密码,防止密码泄露。
res = smtp_obj.login(user=FROM, password='haha521')
print('登录结果:',res)
 
# 发送邮件
msg = '\n'.join(['From: {}'.format(FROM), 'To: {}'.format(TO), 'Subject: {}'.format(SUBJECT), '', CONTENT])
smtp_obj.sendmail(from_addr=FROM, to_addrs=TO, msg=msg.encode('utf-8'))

源码赏析:

登录——login源码

发送——sendmail源码:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

PyQt5实现从主窗口打开子窗口的方法

PyQt5实现从主窗口打开子窗口的方法

1.在Qt Designer中设计两个简单窗口 2.将.ui文件转换成.py文件 3.新建**.py文件 #-*- coding:utf-8 -*- from PyQt5.QtWi...

python基础教程之循环介绍

循环用于重复执行一些程序块。从上一讲的选择结构,我们已经看到了如何用缩进来表示程序块的隶属关系。循环也会用到类似的写法。 for循环 for循环需要预先设定好循环的次数(n),然后执行隶...

django 快速启动数据库客户端程序的方法示例

django 快速启动数据库客户端程序的方法示例

实际工作经历中,免不了有时候需要连接数据库进行问题排查分析的场景,之前一直习惯通过 mysql -uxxx -hxxxx -P1234 ... 这样的方式来启动命令行形式的 MySQL...

python+Django+apache的配置方法详解

本文实例讲述了python+Django+apache的配置方法。分享给大家供大家参考,具体如下: 下载安装xampp套件 下载mod_python-3.3.1.win32-py2.5-...

使用Python编写vim插件的简单示例

 Vim 插件是一个 .vim 的脚本文件,定义了函数、映射、语法规则和命令,可用于操作窗口、缓冲以及行。一般一个插件包含了命令定义和事件钩子。当使用 Python 编写 vi...