Python을 사용하여 쉽게 이메일을 보내는 방법을 단계별로 가르칩니다.

풀어 주다: 2023-08-15 14:56:46
앞으로
1232명이 탐색했습니다.

Foreword

요즘은 삶의 속도가 빨라지고, 사람들 사이의 소통 방식도 많이 달라져요. 우리 모두 알고 있듯이 이메일은 실제로 클라이언트와 서버 사이에서 데이터를 보내고 받는 것과 동일합니다. 이메일의 통신 프로토콜은 SMTP, POP3 및 IMAP에 속합니다. 자주 사용하는 QQ 메일박스와 NetEase 메일박스는 동일한 모델을 가지고 있습니다.


Preparation

편집기: sublime text 3

모듈: smtplib 및 email


프로젝트 구현

1. 설치

pip install smtplib pip install email
로그인 후 복사

참고: 여기에는 작은 구덩이가 있습니다. 즉, 위와 같이 smtplib을 직접 설치할 수 없습니다. 그렇지 않으면 PyEmail을 설치해야 합니다. 첫째, 베개 모듈이 PIL에 통합된 것처럼 smtplib가 이 모듈에 통합되어 있기 때문에 다른 하나는 정상적으로 설치할 수 있습니다.


2 QQ 메일함 등의 인증 코드:

QQ 메일함을 열고 설정 -------- 계정을 선택한 후 서비스를 시작하세요.

서비스를 켠 후, 인증코드 생성을 클릭하여 인증코드를 저장하세요. 인증 코드를 받으려면 등록된 휴대폰 번호로 문자 메시지나 동적 토큰만 보내면 됩니다.Python을 사용하여 쉽게 이메일을 보내는 방법을 단계별로 가르칩니다.

Python을 사용하여 쉽게 이메일을 보내는 방법을 단계별로 가르칩니다.

3. 메일 포트 구축 및 연결

import smtplib sm=smtp.SMTP() # 初始化连接 sm.connect('邮件服务器地址','端口') #建立连接 sm.login('邮箱账号','邮箱密码/授权码') #登陆账户 sm.sendmail('邮件发送方','邮件接受方','邮件内容') #发送邮件 sm.quit() #关闭连接,结束邮件服务
로그인 후 복사

위의 지식을 이해한 후 로그인을 시도해 보겠습니다. QQ 사서함을 예로 들어 보겠습니다.

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

Python을 사용하여 쉽게 이메일을 보내는 방법을 단계별로 가르칩니다.

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


4.构建邮件内容部分

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

一、文本

导入模块

from email.mime.text import MIMEText
로그인 후 복사
填充文本
로그인 후 복사

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

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

邮件内容为字符串

类型: text/plain text/html

编码 : utf-8 gbk

构造文本

MIMEText('hello','text/plain','utf-8')
로그인 후 복사
构造超文本
로그인 후 복사
MIMEText('点击此处有惊喜','text/html','utf-8')
로그인 후 복사

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

Python을 사용하여 쉽게 이메일을 보내는 방법을 단계별로 가르칩니다.

Python을 사용하여 쉽게 이메일을 보내는 방법을 단계별로 가르칩니다.

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

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

from email.header import Header
로그인 후 복사
然后设置头部,内容,尾部
로그인 후 복사
msg1['From']=Header('你是猪吗') #设置发件人昵称msg1['To']=Header('hwhrr123321@163.com') #设置收件人昵称msg1['Subject'] = Header('我是猪') #设置标题
로그인 후 복사

Python을 사용하여 쉽게 이메일을 보내는 방법을 단계별로 가르칩니다.

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


二、图片

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

from email.mime.image import MIMEImage
로그인 후 복사
然后我们在读取图片文件将它添加到邮件中去。
로그인 후 복사
ff=open('1.jpg','rb').read() #打开文件fd=MIMEImage(ff,'subtype') #初始化fd.add_header('Content-ID','1.jpg') #添加到头部
로그인 후 복사

Python을 사용하여 쉽게 이메일을 보내는 방법을 단계별로 가르칩니다.

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

from email.mime.multipart import MIMEMultipart
로그인 후 복사
1.将图片插入到html中
로그인 후 복사

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

msg3 = MIMEMultipart('related')msg3['From'] = '你是猪吗'msg3['To'] = 'hwhrr123321@163.com'msg3['Subject'] = '我是猪'msg4 = MIMEMultipart('alternative') #构建一个附件msg3.attach(msg4) #将附件引入到另一个附件text="""     """msg4.attach(MIMEText(text, 'html', 'utf-8')) #将html插入到附件中ff=open('2.jpg','rb')img = MIMEImage(ff.read()) #将图片读取到附件中ff.close()img.add_header('Content-ID','') #添加图片头部msg3.attach(img) #将图片添加到附件sm.sendmail('2091500484@qq.com','hwhrr123321@163.com',msg3.as_string()) #发送sm.quit()
로그인 후 복사

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

Python을 사용하여 쉽게 이메일을 보내는 방법을 단계별로 가르칩니다.

2.将图片引入到附件中

这个比较好实现。如图:

Python을 사용하여 쉽게 이메일을 보내는 방법을 단계별로 가르칩니다.


三、文件

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

1.读取文件

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

msg6=MIMEMultipart()txt=MIMEText(open('fd.txt','rb').read(), 'base64', 'utf-8')
로그인 후 복사
2.设置传输类型
txt["Content-Type"] = 'application/octet-stream'
로그인 후 복사
3.设置附件名称
txt["Content-Disposition"] = 'attachment; filename = "fd.txt" '
로그인 후 복사
4.将文件添加到附件中
msg6.attach(txt)
로그인 후 복사

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

Python을 사용하여 쉽게 이메일을 보내는 방법을 단계별로 가르칩니다.


项目总结

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

sm.set_debuglevel(1)
로그인 후 복사

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

위 내용은 Python을 사용하여 쉽게 이메일을 보내는 방법을 단계별로 가르칩니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:Python当打之年
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!