前言
最近发现,在服务器上执行脚本的话,执行完成之后,用邮件去发送执行结果也不错。
原因是发现三大运营商对于自身的邮箱,是有短信提醒支持的。
并且这个短信提醒是免费的。
所以变相的拥有了免费发短信到手机的接口
脚本
下面是我用 python 写了一个邮件发送脚本
可以附带图片,暂时只支持发送 1 张图片,以后发现不够用再添加
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.image import MIMEImage
class Sendmail():
def __init__(self,mail_host = "",mail_sender ="",mail_passwd = ""):
self.mail_host = mail_host
self.mail_sender = mail_sender
self.mail_passwd = mail_passwd
def send(self,to_mail,subject,content,image_url):
msg = MIMEMultipart('related')
msg["Subject"] = subject
msg["From"] = self.mail_sender + '@example.com'
msg["To"] = to_mail
#html 格式的邮件正文
content = f'''
<body>
<p>{content}</p>
<p> 图片如下:</p>
<p><img src="cid:imagecontent" alt="imagecontent"></p>
</body>
'''if image_url else f'''
<body>
<p>{content}</p>
</body>
'''msg.attach(MIMEText(content,'html','utf-8'))
if image_url:
#读取图片
with open(image_url, 'rb') as f:
msgImage = MIMEImage(f.read())
# 定义图片 ID,在 HTML 文本中引用
msgImage.add_header('Content-ID', 'imagecontent')
msg.attach(msgImage)
## 发送邮件
s = smtplib.SMTP()
s.connect(self.mail_host, 25)
s.login(self.mail_sender, self.mail_passwd)
s.sendmail(self.mail_sender, [to_mail], msg.as_string())
# print(msg)
print(f'{subject} to-->{to_mail} 邮件发送完成')
s.quit()
def main():
s = Sendmail()
s.send('[email protected]','邮件脚本诞生了','这里放内容',"这里可以放图片")
if __name__ == "__main__":
main()
利用的是 smtp 协议
正文完