问答详情

利用python自动发邮箱

312次观看
标签: 邮箱 python
老师回答

正文

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

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

# -*- 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)

后话

可以把代码加到网络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

然后你就可以专心忙自己的事情,网络训练结束就自动发邮件啦~

更多python相关文章请关注python自学网。

免费直播

    精选课程
    相关推荐
    python中sort()和sorted()使用有什么区别?
    付老师 Python编程

    python中有两种列表排序的方法,即sort() 和sorted() 。这两个方法看起来很像,但是有很大的差别。sort() 修改原列表,永久性排序,无返回值,内存消耗小,而sorted() 保持原列表不变,临时性排序,有返回值,内存消耗大。本文向大家详解这二者使用的区别。

    一、sort() 

    1、定义:python列表的一个内置的排序方法,只是列表的一个方法,只适用于列表;

    2、作用:作用于列表,直接修改原有列表,无返回值;

    3、排序时间:对列表进行永久性排序;

    4、内存消耗:无需保存原对象,节省内存空间。

    5、使用实例:

    list_name = [1, 3, 4, -0.2200222, -4.66]
    list_name.sort()
    print(list_name)

    输出

    [-4.66, -0.2200222, 1, 3, 4]
    原列表的值发生变化,原列表被修改

    二、sorted() 

    1、定义:python内置的一个排序函数,接受一切迭代器,返回一个有序的副本,并且类型总是列表;

    2、作用:作用于任意可迭代的对象,原有列表保持不变,会返回一个排序后的列表。

    3、排序时间:对列表进行临时排序。

    4、内存消耗:返回新对象,所以耗费较多资源。

    5、使用实例:

    list_name = [1, 3, 4, -0.2200222, -4.66]
    list_name_new = sorted(list_name)
    print(list_name)
    print(list_name_new)

    输出

    [1, 3, 4, -0.2200222, -4.66] 原列表
    [-4.66, -0.2200222, 1, 3, 4] 排序后的列表

    相比于sort(),sorted() 使用的范围更为广泛,但是sort()消耗内存比较小,效率也比较高。所以如果不需要保留原列表,sort更有效一点哦~

    python程序设计主要学什么?
    魏老师 Python编程

    1、Python语言基础

    学Python最基础知识,如Python3、数据类字符串、函数、类、文件操作阶段课程结束后,学员需要完成Pygame实战飞机大战、2048等项目。

    2、Python语言高级

    主要学习Python库、正则表达式、进程线程、爬虫、遍历以及MySQL数据库。

    3、Python、web开发

    主要学习HTML、CSS、JavaScript、jQuery等前端知识,掌握python三大后端框架(Django、 Flask以及Tornado)。需要完成网页界面设计实战;能独立开发网站。

    4、Linux基础

    主要学习Linux相关的各种命令,如文件处理命令、压缩解压命令、权限管理以及Linux Shell开发等。

    5、Linux运维自动化开发

    主要学习Python开发Linux运维、Linux运维报警工具开发、Linux运维报警安全审计开发、Linux业务质量报表工具开发、Kali安全检测工具检测以及Kali 密码破解实战。

    6、Python爬虫

    主要学习python爬虫技术,掌握多线程爬虫技术,分布式爬虫技术。

    7、Python数据分析和大数据

    主要学习numpy数据处理、pandas数据分析、matplotlib数据可视化、scipy数据统计分析以及python 金融数据分析;Hadoop HDFS、python Hadoop MapReduce、python Spark core、python Spark SQL以及python Spark MLlib。

    ​8、Python机器学习

    主要学习KNN算法、线性回归、逻辑斯蒂回归算法、决策树算法、朴素贝叶斯算法、支持向量机以及聚类k-means算法。

    注册电脑版

    版权所有 2003-2020 广州环球青藤科技发展有限公司