Heim > Backend-Entwicklung > Python-Tutorial > Bringen Sie Ihnen Schritt für Schritt bei, wie Sie Python zum einfachen Versenden von E-Mails verwenden

Bringen Sie Ihnen Schritt für Schritt bei, wie Sie Python zum einfachen Versenden von E-Mails verwenden

Freigeben: 2023-08-15 14:56:46
nach vorne
1444 Leute haben es durchsucht

Vorwort

Heutzutage beschleunigt sich das Leben und auch die Kommunikationsmethoden zwischen Menschen sind sehr unterschiedlich. Um die Kommunikation bequemer zu gestalten, verwenden Sie E-Mail Wie wir alle wissen, ist E-Mail eigentlich dasselbe wie das Senden und Empfangen von Daten zwischen dem Client und dem Server. Die Kommunikationsprotokolle von E-Mail sind SMTP, POP3 und IMAP zum TCP/IP-Protokoll, wie unseres. Das häufig verwendete QQ-Postfach und das NetEase-Postfach haben das gleiche Modell.


Vorbereitung

Herausgeber: sublime text 3

Module: smtplib und email


Projektimplementierung

1. Installation

pip install smtplib
pip install email
Nach dem Login kopieren

Hinweis: Hier gibt es eine kleine Grube, das heißt, Sie können smtplib nicht direkt wie oben installieren, sonst wird es nicht installiert Erstens, weil Ihre smtplib in dieses Modul integriert ist, genau wie das Kissenmodul in PIL integriert ist. Das andere kann normal installiert werden.


2. Öffnen Sie den Pop3-SMTP-IMAP-Dienst und erfahren Sie den E-Mail-Autorisierungscode

Wenn Sie E-Mails an eine beliebige E-Mail-Adresse senden möchten, müssen Sie zunächst die oben genannten Dienste aktivieren, damit E-Mails kommunizieren können. Außerdem müssen Sie über einen Autorisierungscode für die E-Mail-Adresse verfügen, z. B. ein QQ-Postfach:

Öffnen Sie das QQ-Postfach, wählen Sie Einstellungen -------- Konto und starten Sie dann den Dienst.

Bringen Sie Ihnen Schritt für Schritt bei, wie Sie Python zum einfachen Versenden von E-Mails verwenden

Bringen Sie Ihnen Schritt für Schritt bei, wie Sie Python zum einfachen Versenden von E-Mails verwenden

Klicken Sie nach dem Einschalten des Dienstes auf, um den Autorisierungscode zu generieren und den Autorisierungscode zu speichern. Um den Autorisierungscode zu erhalten, müssen Sie lediglich Ihre registrierte Mobiltelefonnummer zum Senden einer Textnachricht oder eines dynamischen Tokens verwenden. 3. Bauen Sie einen Mail-Port auf und stellen Sie eine Verbindung her

有这样的标识表示登陆成功,顺便强调一句,在这里我为什么没有配置邮件服务器端口,因为服务器已经帮我们配置好了,默认的都是25号端口,如果你担心邮件的安全问题,比如会被黑客截胡,你也可以使用ssl链接传输:

Bringen Sie Ihnen Schritt für Schritt bei, wie Sie Python zum einfachen Versenden von E-Mails verwenden

同样它的端口也是默认配置好了,他的端口号为465,为了安全,咱们选择这项。


4.构建邮件内容部分

这里我们需要用到email模块,我们都知道,邮件一般可以发很多东西,比如说文本,图片,文件等等,那么我们来看看吧。

一、文本

导入模块

from email.mime.text import MIMEText
Nach dem Login kopieren
填充文本
Nach dem Login kopieren

在此之前我们得知道它的具体用法:

MIMEText(‘邮件内容’,‘类型’, '编码')

邮件内容为字符串

类型: text/plain text/html

编码 : utf-8 gbk

构造文本

MIMEText('hello','text/plain','utf-8')
Nach dem Login kopieren
构造超文本
Nach dem Login kopieren
MIMEText(&#39;<a href=&#39;www.baidu.com&#39;>点击此处有惊喜</a>&#39;,&#39;text/html&#39;,&#39;utf-8&#39;)
Nach dem Login kopieren

下面我们来实际操作下吧。

Bringen Sie Ihnen Schritt für Schritt bei, wie Sie Python zum einfachen Versenden von E-Mails verwenden

Bringen Sie Ihnen Schritt für Schritt bei, wie Sie Python zum einfachen Versenden von E-Mails verwenden

非常成功收到了邮件了。正是2091500484这个邮箱给我发的。当然我们这样只是实现了最简单的功能,

我们需要将它格式规范下,比如给它添加个开头结尾什么的。我们需要导入构建邮件完整内容的模块:

from email.header import Header
Nach dem Login kopieren
    然后设置头部,内容,尾部
Nach dem Login kopieren
msg1[&#39;From&#39;]=Header(&#39;你是猪吗&#39;)  #设置发件人昵称msg1[&#39;To&#39;]=Header(&#39;hwhrr123321@163.com&#39;) #设置收件人昵称msg1[&#39;Subject&#39;] = Header(&#39;我是猪&#39;) #设置标题
Nach dem Login kopieren

Bringen Sie Ihnen Schritt für Schritt bei, wie Sie Python zum einfachen Versenden von E-Mails verwenden

可以看到,是不是觉得很有趣了,快来试试吧,哈哈哈。。。


二、图片

发了文本后我们还想发一张图片,那该怎么办呢?莫慌,此时需要先导入发图片的模块:

from email.mime.image import MIMEImage
Nach dem Login kopieren
    然后我们在读取图片文件将它添加到邮件中去。
Nach dem Login kopieren
ff=open(&#39;1.jpg&#39;,&#39;rb&#39;).read() #打开文件fd=MIMEImage(ff,&#39;subtype&#39;)    #初始化fd.add_header(&#39;Content-ID&#39;,&#39;1.jpg&#39;)  #添加到头部
Nach dem Login kopieren

Bringen Sie Ihnen Schritt für Schritt bei, wie Sie Python zum einfachen Versenden von E-Mails verwenden

可以看到图片并没有显示出来,那么这是怎么回事,哦,原来图片是依托附件而存在的,要么是html要么是附件,但是两者都需要附件模块的支持,下面我们导入附件模块:

from email.mime.multipart import MIMEMultipart
Nach dem Login kopieren
1.将图片插入到html中
Nach dem Login kopieren

也就是将图片插入到正文部分,而非附件的形式。

msg3 = MIMEMultipart(&#39;related&#39;)msg3[&#39;From&#39;] = &#39;你是猪吗&#39;msg3[&#39;To&#39;] = &#39;hwhrr123321@163.com&#39;msg3[&#39;Subject&#39;] = &#39;我是猪&#39;msg4 = MIMEMultipart(&#39;alternative&#39;) #构建一个附件msg3.attach(msg4)  #将附件引入到另一个附件text="""   <html>   <body>   <img src=&#39;cid:img&#39; tittle=&#39;I am  pig&#39;>   </body>   </html>"""msg4.attach(MIMEText(text, &#39;html&#39;, &#39;utf-8&#39;)) #将html插入到附件中ff=open(&#39;2.jpg&#39;,&#39;rb&#39;)img = MIMEImage(ff.read())  #将图片读取到附件中ff.close()img.add_header(&#39;Content-ID&#39;,&#39;<img>&#39;) #添加图片头部msg3.attach(img)   #将图片添加到附件sm.sendmail(&#39;2091500484@qq.com&#39;,&#39;hwhrr123321@163.com&#39;,msg3.as_string()) #发送sm.quit()
Nach dem Login kopieren

可以看出,过程还是比较复杂的,比单纯附件添加图片麻烦点,主要是嵌套了一层附件结构。

Bringen Sie Ihnen Schritt für Schritt bei, wie Sie Python zum einfachen Versenden von E-Mails verwenden

2.将图片引入到附件中

这个比较好实现。如图:

Bringen Sie Ihnen Schritt für Schritt bei, wie Sie Python zum einfachen Versenden von E-Mails verwenden


三、文件

在发送文件前,我们要考虑的一个问题是,我们读取它要以二进制的形式,然后再将它添加到附件中,搞懂了这个就好办了。

1.读取文件

这里我们需要构造一个base64的一个数据流读取文件:

msg6=MIMEMultipart()txt=MIMEText(open(&#39;fd.txt&#39;,&#39;rb&#39;).read(), &#39;base64&#39;, &#39;utf-8&#39;)
Nach dem Login kopieren
2.设置传输类型
txt["Content-Type"] = &#39;application/octet-stream&#39;
Nach dem Login kopieren
3.设置附件名称
txt["Content-Disposition"] = &#39;attachment; filename = "fd.txt" &#39;
Nach dem Login kopieren
4.将文件添加到附件中
msg6.attach(txt)
Nach dem Login kopieren

最后就成功将文件添加到了附件中了。

Bringen Sie Ihnen Schritt für Schritt bei, wie Sie Python zum einfachen Versenden von E-Mails verwenden


项目总结

以上便是我对邮件发送的所有感悟了,另外如果你想将邮件传输时的过程直观展示出来的话只需在邮件服务器登陆的前一句加上:

sm.set_debuglevel(1)
Nach dem Login kopieren

    这样便可以将所有传输过程打印在终端了。通过对邮件的学习,可以极大地便利我们的生活,你可以使用邮件来给你设置一个计划表,通过程序实现,每天按时发送邮件,是不是很高逼格了,希望今天这篇文章能让大家对邮件有个全新的认识。

Das obige ist der detaillierte Inhalt vonBringen Sie Ihnen Schritt für Schritt bei, wie Sie Python zum einfachen Versenden von E-Mails verwenden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:Python当打之年
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage