【Python】利用python自动发送邮件

简介:

【Python】利用python自动发送邮件

前言
在训练网络的过程中,需要大量的时间,虽然可以预估网络训练完成时间,但蹲点看结果着实有点不太聪明的亚子。

因此,参照师兄之前发的python利用smtp自动发邮件的代码,我作了些调整,并参照网上的开源代码,整理出了加强版(可以传文件),这样训练的log还有model,或者是远程电脑上的文件都可以通过邮件即时到达接收邮件的邮箱很方便吧~~

Top
正文
废话不多说,直接上代码。

一、普通文本邮件(作通知训练结束用 😃 )

-- coding: UTF-8 --

import smtplib
from email.mime.text import MIMEText

第三方 SMTP 服务

mail_host = "smtp.163.com" # SMTP服务器
mail_user = "yourname" # 用户名
mail_pass = "xxx" # 密码(这里的密码不是登录邮箱密码,而是授权码)

sender = 'yourname@163.com' # 发件人邮箱
receivers = 'othername@163.com'] # 接收人邮箱

content = 'Python Send Mail ! 训练结束!'
title = 'Python SMTP Mail 训练结束' # 邮件主题

message = MIMEText(content, 'plain', 'utf-8') # 内容, 格式, 编码
message['From'] = "{}".format(sender)
message['To'] = ",".join(receivers)
message['Subject'] = title

try:

smtpObj = smtplib.SMTP_SSL(mail_host, 465)  # 启用SSL发信, 端口一般是465
smtpObj.login(mail_user, mail_pass)  # 登录验证
smtpObj.sendmail(sender, receivers, message.as_string())  # 发送
print("mail has been send to {0} successfully.".format(receivers))

except smtplib.SMTPException as e:

print(e)

二、加强版附件传输邮件

-- coding: UTF-8 --

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.header import Header

Files' Paths:

file1 = 'mail.py'
file2 = 'maill.py'

收邮件的地址,可以多个。

Receivers = ['receiver1@163.com','receiver2@163.com']

邮件主题:

title = 'Python SMTP 邮件(文件传输)'

模拟服务器

SMTP服务器

SMTPServer="smtp.163.com"

发邮件的地址

Sender="yourname@163.com"

发送者邮件的授权密码,去163邮箱设置里获取。并非是密码。

passwd="xxx"

创建一个带附件的实例

message = MIMEMultipart()
message['From'] = Sender
message['To'] = ",".join(Receivers)
message['Subject'] = title

邮件正文内容

message.attach(MIMEText('附件中是要传输的文件。n ', 'plain', 'utf-8'))
message.attach(MIMEText('The files you need are as followed. n ', 'plain', 'utf-8'))

构造附件1

att1 = MIMEText(open(file1, 'rb').read(), 'base64', 'utf-8')
att1["Content-Type"] = 'application/octet-stream'
att1["Content-Disposition"] = 'attachment; filename={0}'.format(file1)
message.attach(att1)

构造附件2

att2 = MIMEText(open(file2, 'rb').read(), 'base64', 'utf-8')
att2["Content-Type"] = 'application/octet-stream'
att2["Content-Disposition"] = 'attachment; filename={0}'.format(file2)
message.attach(att2)

try:

mailServer = smtplib.SMTP(SMTPServer, 25)  # 25为端口号(邮件),0-1024都被系统占用了
# 登录邮箱
mailServer.login(Sender, passwd)  # 需要的是,邮箱的地址和授权密码
# 发送文件
mailServer.sendmail(Sender, Receivers, message.as_string())
print("邮件发送成功")
print("Mail with {0} & {1} has been send to {2} successfully.".format(file1,file2,Receivers))

except smtplib.SMTPException as e:

print("Error: 无法发送邮件")
print(e)

Top
后话
可以把代码加到网络train.py的最后,别忘了在train.py的开头加上:

-- coding: UTF-8 --

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.header import Header
然后你就可以专心忙自己的事情,网络训练结束就自动发邮件啦~

果然——Codes change the world. 😃

原文地址https://www.cnblogs.com/hatimwen/p/pythonmail.html

相关文章
|
4月前
|
前端开发 JavaScript Java
【实操】SpringBoot监听Iphone15邮件提醒,Selenium+Python自动化抢购脚本
本文介绍了一个结合SpringBoot和Python的实用功能,旨在监控iPhone 15的库存状态并通过邮件提醒用户。系统采用SpringBoot监听苹果官网API,解析JSON数据判断是否有货,并展示最近的库存记录。此外,还能自动触发Selenium+Python脚本实现自动化购买。文中详细介绍了技术栈、接口分析、邮件配置及自动化脚本的设置方法。该项目不仅适用于熟悉后端开发的人员,也适合回顾Layui和Jquery等前端技术。
56 0
【实操】SpringBoot监听Iphone15邮件提醒,Selenium+Python自动化抢购脚本
|
14天前
|
安全 API 文件存储
Yagmail邮件发送库:如何用Python实现自动化邮件营销?
本文详细介绍了如何使用Yagmail库实现自动化邮件营销。Yagmail是一个简洁强大的Python库,能简化邮件发送流程,支持文本、HTML邮件及附件发送,适用于数字营销场景。文章涵盖了Yagmail的基本使用、高级功能、案例分析及最佳实践,帮助读者轻松上手。
26 4
|
26天前
|
开发者 Python
使用Python实现自动化邮件通知:当长时程序运行结束时
本文介绍了如何使用Python实现自动化邮件通知功能,当长时间运行的程序完成后自动发送邮件通知。主要内容包括:项目背景、设置SMTP服务、编写邮件发送函数、连接SMTP服务器、发送邮件及异常处理等步骤。通过这些步骤,可以有效提高工作效率,避免长时间等待程序结果。
55 9
|
2月前
|
Python
python使用smtp发送邮件
python使用smtp发送邮件
28 0
|
4月前
|
数据安全/隐私保护 Python
如何使用Python自动发送邮件?
如何使用Python自动发送邮件?
126 1
|
5月前
|
监控 网络协议 网络安全
SMTP操作使用详解并通过python进行smtp邮件发送示例
SMTP操作使用详解并通过python进行smtp邮件发送示例
151 3
|
6月前
|
Python
python发送邮件
python发送邮件
50 1
|
6月前
|
数据安全/隐私保护 Python
如何使用 Python 发送邮件
如何使用 Python 发送邮件
|
6月前
|
网络安全 数据安全/隐私保护 Python
Python SMTP发送邮件
Python SMTP发送邮件
|
6月前
|
Windows Python
每日自动发邮件(Python +QQ邮箱 + Windows 10定时任务)
每日自动发邮件(Python +QQ邮箱 + Windows 10定时任务)
每日自动发邮件(Python +QQ邮箱 + Windows 10定时任务)