如何用python实现邮箱发送信息

news/2024/7/5 1:46:00
这篇文章主要为大家详细介绍了python实现邮箱发送信息,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了python实现邮箱发送信息的具体代码,供大家参考,具体内容如下

一、SSL

SSL 是指安全套接字层,简而言之,它是一项标准技术,可确保互联网连接安全,保护两个系统之间发送的任何敏感数据,防止网络犯罪分子读取和修改任何传输信息,包括个人资料。两个系统可能是指服务器和客户端(例如,浏览器和购物网站),或两个服务器之间(例如,含个人身份信息或工资单信息的应用程序)。

二、SMTP

SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。

python的smtplib提供了一种很方便的途径发送电子邮件。它对smtp协议进行了简单的封装。

三、实现邮箱轰炸

需要用到三个模块

​ 1、SMTP_SSL --传输加密,安全,也可以用smtplib,但是建议用SSL

​ 2、MIMEText --用来返回对象(返回对象方便操作),并且存放写入的内容

​ 3、Header --用来反检测,不写的话邮箱可能提示为垃圾邮箱,就不能发送信息了

三步骤:

​ 1、登录(SMTP_SSL)–要实例化SMTP_SSL对象

​ 2、发送写入的信息(sendmail(starthost,endhost,me.as_string())–starthost为

​ 3、退出(quit)

'''
参数说明:host: SMTP 服务器主机。 你可以指定主机的ip地址或者域名如:runoob.com,这个是可选参数。port: 如果你提供了 host 参数, 你需要指定 SMTP 服务使用的端口号,一般情况下SMTP端口号为25。local_hostname: 如果SMTP在你的本机上,你只需要指定服务器地址为 localhost 即可。
'''
import smtplib
smtpObj = smtplib.SMTP( [host [, port [, local_hostname]]] )'''
参数说明:from_addr: 邮件发送者地址。to_addrs: 字符串列表,邮件发送地址。msg: 发送消息
Python SMTP对象使用sendmail方法发送邮件,语法如下:
'''
SMTP.sendmail(from_addr, to_addrs, msg[, mail_options, rcpt_options]

实现方式:

使用第三方邮箱服务:

列如用自己的qq邮箱服务来向对方(或者自己)发送(匿名)邮箱信息

但是得首先得到QQ邮箱的授权码(网上有教程,很简单)

'''Python 邮箱 深夜测试授权码:*****
'''
from smtplib import SMTP_SSL
from email.mime.text import MIMEText
from email.header import Header#第三方服务(qq)
mail_host = 'smtp.qq.com'
mail_user = '27*****' #账号
mail_pws = '*****' #授权码#登录
smtp = SMTP_SSL(mail_host)  #实例化
smtp.ehlo(mail_host)
smtp.login(mail_user,mail_pws)#登录#我和对方的邮件地址
my_mail = '27*****@qq.com' #自己打的邮箱地址
her_mail = '*****@163.com' #对方的邮箱地址#写入的内容
cont = '你好我是HV,我来自外星球!'
#标题
title = '来着地球的HV'#内容格式化
for i in range(10): #向目标发送10个邮箱msg = MIMEText(cont,'plain','UTF-8') #plain为txt格式,如果直接写txt的话,会被检测为垃圾邮箱msg['Subject'] = Header(title,'UTF-8') msg['From'] = my_mail #这里有填写您的邮箱地址格式,对方才会知道发件人是谁,要不然对方默认为(无发件人)msg['To'] = '我的好友' #这个要注意!这里只能填字符串,如果填其他的数据类型就会报错!smtp.sendmail(my_mail,her_mail,msg.as_string())# smtp.quit()smtp.quit() #关闭SMTP,邮箱信息传输
'''Python 邮箱 深夜测试授权码:*****
'''
from smtplib import SMTP_SSL
from email.mime.text import MIMEText
from email.header import Header#第三方服务(qq)
mail_host = 'smtp.qq.com'
mail_user = '27*****' #账号
mail_pws = '*****' #授权码#登录
smtp = SMTP_SSL(mail_host)  #实例化
smtp.ehlo(mail_host)
smtp.login(mail_user,mail_pws)#登录#我和对方的邮件地址
my_mail = '27*****@qq.com' #自己打的邮箱地址
her_mail = '*****@163.com' #对方的邮箱地址#写入的内容
cont = '你好我是HV,我来自外星球!'
#标题
title = '来着地球的HV'#内容格式化
for i in range(10): #向目标发送10个邮箱msg = MIMEText(cont,'plain','UTF-8') #plain为txt格式,如果直接写txt的话,会被检测为垃圾邮箱msg['Subject'] = Header(title,'UTF-8') msg['From'] = my_mail #这里有填写您的邮箱地址格式,对方才会知道发件人是谁,要不然对方默认为(无发件人)msg['To'] = '我的好友' #这个要注意!这里只能填字符串,如果填其他的数据类型就会报错!smtp.sendmail(my_mail,her_mail,msg.as_string())# smtp.quit()smtp.quit() #关闭SMTP,邮箱信息传输

当然也可以封装在函数里面方便调用


http://lihuaxi.xjx100.cn/news/283890.html

相关文章

清晰易懂的Focal Loss原理解释

来源:https://www.cnblogs.com/king-lps/p/9497836.html编辑:石头1. 总述Focal loss主要是为了解决one-stage目标检测中正负样本比例严重失衡的问题。该损失函数降低了大量简单负样本在训练中所占的权重,也可理解为一种困难样本挖掘。2. 损失…

pytest接口测试之fixture传参数request

本文主要介绍了pytest接口测试之fixture传参数request的使用,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 前言 有的测试用例,需要依赖于某些特定的case才可以执行,比如登录获取…

【MySQL】MySQL的事务

事务 目录事务1.1 为什么使用事务?1.2 事务的概念1.3 使用2.事务的基本特性2.1 脏读问题:2.2 不可重复读:2.3 幻读问题:2.4 MySQL中事务的隔离级别1.1 为什么使用事务? 准备测试表: drop table if exists…

html5日期转long

正确:日期,时间均是实时的 var inDate $("#inDate").val().trim(); if(inDate ! "") {inDate inDate.split(-);var d new Date();d.setFullYear(inDate[0]);d.setMonth(inDate[1] 1);d.setDate(inDate[2]);inDate d.getTime();…

深度解析:特斯拉「最强」自动驾驶芯片?

作者 | 唐杉来源 | StarryHeavenAbove在近日结束的Tesla Autonomy活动中,Tesla非常“大方”的介绍了自己的Full Self-Driving (FSD) Computer从系统到芯片的很多细节。从芯片来看,其“透明度”超过了除Google第一代TPU之外所有的AI相关芯片。实际上&…

超全面的Linux基础知识的梳理

我们是谁?我们为什么要学习Linux?我们想达到什么样的目标?作为一名LINUX运维小白,每日每夜面对着这些 linux生产环境,如何胜任?在今天这篇文章中,我们将分享一些Linux基础性的东西。这篇文章只是…

一个妹子的美团面试经历,历经 4 轮 2 小时,成功拿到 Offer

点击上方蓝色字体,选择“标星公众号”优质文章,第一时间送达来源:只爱羽毛球的程序媛blog.csdn.net/csuliyajin2012/article/details/49430659美团,我是在拉勾网上投的简历,之前也投过一次,简历都没通过删选…

【MySQL】Java中的 JDBC 编程

目录💦前言 : 数据库编程的必备条件1. Java的数据库编程:JDBC1.1 JDBD使用步骤4. JDBC使用4.1创建数据源4.2 与数据库服务器建立连接4.3 操作数据库. 以插入数据为例5.数据库操作(CURD 增删改查)5.1 插入(e…