python怎么群发邮件_python小白之实现群发邮件

python怎么群发邮件_python小白之实现群发邮件2020 年 10 月 2 日前两天看到 kk 的公众号推送有一句话特别醒目努力是最不值得拿来夸口的东西 因为这是最基本的以前考研的时候所有驱动力都是 kk 的推送后来有了内在驱动力很少点开 kk 的推送了最好的摆渡人的结局今天发生了一件超级有趣的事情人生中第一次遇见跟我同名的人 在某大的群里哪怕姓不一样 性别也不一样 真的很少见我说好像和您同名他说 我的荣幸我回 荣幸之至然后有了对方的添加信息 我是 CSEP

2020年10月2日

前两天看到kk的公众号推送

有一句话特别醒目

努力是最不值得拿来夸口的东西,因为这是最基本的

以前考研的时候所有驱动力都是kk的推送

后来有了内在驱动力

很少点开kk的推送了

最好的摆渡人的结局

今天发生了一件超级有趣的事情

人生中第一次遇见跟我同名的人,

在某大的群里

哪怕姓不一样,性别也不一样,真的很少见

我说好像和您同名

他说,我的荣幸

我回:荣幸之至

然后有了对方的添加信息

“我是*,CSE PhD student,请多指教”

我们互聊了当下最顶的教授,然后也帮忙推荐了他的博导

互约了有机会回去,一起去hiking.

嗯,在某大,真的会很放心的毫防备的和大家聊,约户外活动,因为大家一心学术,品德纯良,尊重女性,谦逊自信,根本没有所谓的目的性

今天要学习的群发邮件,主要需要学习两个模块

方法是smtplib,email这两个模块

其中:smtplib是用来发送邮件用的,email是用来构建邮件内容的,这两个都是Python内置模块

第一行,我们懂,是引入smtplib模块。第三行,server是一个变量,smtplib.SMTP()是变量server的值。我们已经知道了smtplib是模块的名称,那SMTP是什么意思呢?

请你先在自己电脑的VS Code上新建一个.py文件。注意:这个.py文件不能命名为email.py,而且你存放这个py文件的文件夹里,也不能email.py。这是由于我们后面要调用email模块,如果将文件也命名为email,会造成报错。

import smtplib

server = smtplib.SMTP()

server.connect(host, port)

server.login(username, password)

server.sendmail(sender, to_addr, msg.as_string())

server.quit()

SMTP (Simple Mail Transfer Protocol)翻译过来是“简单邮件传输协议”的意思,SMTP 协议是由源服务器到目的地服务器传送邮件的一组规则。可以简单理解为:我们需要通过SMTP指定一个服务器,这样才能把邮件送到另一个服务器。

import smtplib

server = smtplib.SMTP()

server.connect(host, port)

第四行代码,就是干这个工作的,连接(connect)指定的服务器。host是指定连接的邮箱服务器,你可以指定服务器的域名。通过搜索“xx邮箱服务器地址”,就可以找到。port 是“端口”的意思。端口属于计算机网络知识里的内容,你可以自行搜索了解,现在我们只要知道它是一个【整数】即可。我们需要指定SMTP服务使用的端口号,一般情况下SMTP默认端口号为25

import smtplib

server = smtplib.SMTP_SSL()

#如果端口是用SSL加密,请这样写代码。其中server是变量名

server.connect(‘smtp..com’, 465)

#如果出现编码错误UnicodeDecodeError,你可以这样写:server.connect(‘smtp..com’, 465,’utf-8′)

第五行代码,login是登录的意思,也就是登录你指定的服务器用的,需要输入两个参数:登录邮箱和授权码

第六行代码sendmail是“发送邮件”的意思,是发送邮件用的,sendmail()方法需要三个参数:发件人,收件人和邮件内容。这里的发件人from_addr与上面的username是一样的,都是你的登录邮箱,所以只用设置一次。

msg.as_string()是一个字符串类型:as_string()是将发送的信息msg变为字符串类型。

以邮箱为例:

# smtplib 用于邮件的发信动作

import smtplib

# 发信方的信息:发信邮箱,邮箱授权码

from_addr = ‘xxx.@com’

password = ‘你的授权码数字’

# 收信方邮箱

to_addr = ‘xxx.@com’

# 发信服务器

smtp_server = ‘smtp..com’

# 开启发信服务,这里使用的是加密传输

server = smtplib.SMTP_SSL()

server.login(smtp_server,465)

# 登录发信邮箱

server.login(from_addr, password)

# 发送邮件

server.sendmail(from_addr, to_addr, msg.as_string())

# 关闭服务器

server.quit()

email 模块:也就是用来写邮件内容的模块。这个内容可以是纯文本、HTML内容、图片、附件等多种形式

from email.mime.text import MIMEText

from email.mime.image import MIMEImage

from email.mime.multipart import MIMEMultipart

# smtplib 用于邮件的发信动作

import smtplib

from email.mime.text import MIMEText

# email 用于构建邮件内容

# 发信方的信息:发信邮箱, 邮箱授权码

from_addr = ”

password = ‘你的授权码数字’

# 收信方邮箱

to_addr = ”

# 发信服务器

smtp_server = ‘smtp..com’

# 邮箱正文内容,第一个参数为内容,第二个参数为格式(plain 为纯文本),第三个参数为编码

msg = MIMEText(‘send by python’,’plain’,’utf-8′)

# 开启发信服务,这里使用的是加密传输

server = smtplib.SMTP_SSL()

server.connect(smtp_server,465)

# 登录发信邮箱

server.login(from_addr, password)

# 发送邮件

server.sendmail(from_addr, to_addr, msg.as_string())

# 关闭服务器

server.quit()

如果你的Python版本是3.7,很可能发生这种报错。因为Python 3.7修改了ssl.py,导致smtplib.SMTP_SSL也连带产生了问题

有问题可以讨论哦

实在太困了,偷点懒~

晚安

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/205217.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午6:32
下一篇 2026年3月19日 下午6:32


相关推荐

  • pstack 安装linux_Linux下pstack的实现

    pstack 安装linux_Linux下pstack的实现Linux下有时候我们需要知道一个进程在做什么,比如说程序不正常的时候,他到底在干吗?最直接的方法就是打印出他所有线程的调用栈,这样我们从栈再配合程序代码就知道程序在干吗了。Linux下这个工具叫做pstack.使用方法是#pstackUsage:pstack当然这个被调查的程序需要有符号信息。比较雷人的是这个程序竟然是个shell脚本,核心实现是gdb的threadapplyal…

    2025年11月17日
    5
  • 扣子平台上如何进行对象序列化,JSON序列化和反序列化节点的使用

    扣子平台上如何进行对象序列化,JSON序列化和反序列化节点的使用

    2026年3月12日
    3
  • 哪些线程是安全的_redis是线程安全的吗

    哪些线程是安全的_redis是线程安全的吗Java中平时用的最多的map就是hashmap但是它却是线程不安全的。那除了hashmap还有哪些常见的线程安全的map?1.hashtableMap<String,Object>hashtable=newHashtable<String,Object>();这是所有人最先想到的,那为什么她是线程安全的?那就看看她的源码,我们可以看出我们常用的put,get,…

    2022年4月20日
    44
  • redis淘汰策略图

    redis淘汰策略图

    2026年3月26日
    2
  • ddr2 odt_ddr2电压

    ddr2 odt_ddr2电压经常有人会说支持DDR2的主板存在偷工减料的现象。事实上这是由于DDR2内存中使用了一项新的ODT技术,它可以在提高内存信号稳定性的基础上节省不少电器元件。主板终结是一种最为常见的终结主板内干扰信号的方法。在每一条信号传输路径的末端,都会安置一个终结电阻,它具备一定的阻值可以吸收反射回来的电子。但是目前DDR2内存的工作频率太高了,这种主板终结的方法并不能有效的阻止干扰信号。若硬要采用主板终结

    2025年10月10日
    7
  • Python:whl文件是神?如何安装whl文件?

    Python:whl文件是神?如何安装whl文件?来自:http://blog.csdn.net/fhl812432059/article/details/51745226转载是一种偷懒。管不了那么多了,人一辈子就那么多时间。各位客官将就一下吧,哈哈步骤:1.用管理员方式打开cmd2.首先通过pip命令安装wheel如果提示’pip’不是内部或外部命令,也不是可运行的程序或批处理文件①将python安装目录下的scrip

    2022年5月30日
    53

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号