>  기사  >  백엔드 개발  >  Python을 사용하여 이메일 보내기

Python을 사용하여 이메일 보내기

PHPz
PHPz앞으로
2023-04-12 10:04:122920검색

Python을 사용하여 이메일 보내기

SMTP(Simple Mail Transfer Protocol)는 단순 메일 전송 프로토콜로,

메일을 원본 주소에서 대상 주소로 전송하는 규칙 집합입니다. Python의 smtplib는 이메일을 보내는 매우 편리한 방법을 제공합니다. 이는 단순히 SMTP 프로토콜을 캡슐화합니다.

1. 이메일 발송에 사용할 이메일 계정을 준비하세요.

이메일 계정과 이메일 로그인 인증코드를 준비하세요. 인증 코드를 얻는 방법은 다른 유형의 메일함과 유사합니다. 여기서는 인증 코드를 얻는 단계를 보여주기 위해 QQ 메일함을 예로 들어 보겠습니다.

1단계: 웹페이지를 사용하여 QQ 메일함에 로그인하고 도움말을 찾으세요. center

Python을 사용하여 이메일 보내기

2단계: 도움말에서 중앙의 "클라이언트 설정"에서 두 번째 질문인

Python을 사용하여 이메일 보내기

을 선택한 다음 해당 요구 사항에 따라 인증 코드를 받고 저장하세요.

2. 이메일 보내기 기본 단계

코드를 통해 이메일을 보내는 단계는 기본적으로 이메일을 수동으로 보내는 단계와 동일합니다. 메일함에 로그인 -> 이메일 콘텐츠 준비 -> 이메일 보내기.

2.1 이메일로 로그인

import smtplib
1. 连接邮箱服务器
连接对象 = smtplib.SMTP_SSL(服务器地址, 邮箱服务端口)
- 服务器地址:smtp.163.com(163邮箱)、smtp.qq.com(qq邮箱) - 邮箱服务端口:465或者25
2. 登录邮箱 连接对象.login(邮箱账号, 授权码)

2.2 데이터 준비

데이터란 전송해야 하는 내용을 말합니다. 이메일 콘텐츠를 구성하려면 이메일 제목과 다양한 형태의 이메일 콘텐츠(텍스트 콘텐츠, 이미지 콘텐츠, HTML 콘텐츠, 첨부 파일 포함) 등을 구축하는 데 사용할 수 있는 또 다른 라이브러리인 이메일이 필요합니다. 이메일 제목과 텍스트 콘텐츠에 대해 간략하게 이야기하겠습니다. 다른 형태의 콘텐츠에 대해서는 나중에 이메일 콘텐츠 섹션에서 자세히 설명합니다.

from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.header import Header
1. 创建邮件对象
邮件对象 = MIMEMultipart()
2. 设置邮件主题
主题对象 = Header(邮件标题, 编码方式).encode()
邮件对象['Subject'] = 主题对象
3.设置邮件发送者
邮件对象['From'] = '用户名 <用户名>'
4.设置邮件接受者
邮件对象['To'] = '收件⼈1;收件⼈2;收件人3...'
5. 添加文字内容
文字内容对象 = MIMEText(内容, 类型, 编码方式)
- 内容:就是文字字符串
- 类型:plain(简单的⽂字内容)、html(超文本) 邮件对象.attach(文字对象)

2.3 이메일 보내기

3. 다양한 유형의 이메일 전송 예

连接对象.sendmail(发件⼈, 收件人, 邮件对象.as_string())
连接对象.quit()

3.1 일반 텍스트 내용 이메일

이 유형의 이메일의 이메일 본문에는 일반 텍스트 정보만 포함되어 있으며 하이퍼텍스트는 없습니다. 그림 및 첨부 없음:

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.header import Header
# 1. 连接邮箱服务器
con = smtplib.SMTP_SSL('smtp.163.com', 465)
# 2. 登录邮箱
con.login('XXXX@163.com', 'XXXXX')
# 2. 准备数据
# 创建邮件对象
msg = MIMEMultipart()
# 设置邮件主题
subject = Header('找回密码', 'utf-8').encode() msg['Subject'] = subject
# 设置邮件发送者
msg['From'] = 'XXXX@163.com <XXXX@163.com>'
# 设置邮件接受者
msg['To'] = '726550822@qq.com'
# 添加⽂文字内容
text = MIMEText('忘记密码需要找回密码', 'plain', 'utf-8')
msg.attach(text)
# 3.发送邮件
con.sendmail('xxxx@163.com', '726550822@qq.com', msg.as_string())
con.quit()

Python을 사용하여 이메일 보내기

3.2 하이퍼텍스트 파일 콘텐츠

더 풍부하고 흥미로운 텍스트가 포함된 일종의 이메일입니다. 우리가 생활 속 주요 플랫폼에서 받는 이메일은 모두 이러한 이메일입니다.

from email.mime.text import MIMEText
html⽂本对象 = MIMEText(html内容字符串, 'html', 编码方式) 邮件对象.attach(html⽂本对象)

특정 코드:

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.header import Header
con = smtplib.SMTP_SSL('smtp.163.com', 465)
con.login('xxxx@163.com', 'xxxxxx')
msg = MIMEMultipart()
subject = Header('找回密码', 'utf-8').encode()
msg['Subject'] = subject
msg['From'] = 'xxxx@163.com <xxxx@163.com>'
msg['To'] = '726550822@qq.com'
# 添加html内容
content = """
<h2>我是正⽂中的标题</h2>
<p>邮件正文描述性文字1</p>
<p>邮件正⽂描述性文字2</p>
<img  src='https://www.php.cn/link/deee9fe5195586bf4545518a76aff2f7/img/bd_logo1.png' alt="Python을 사용하여 이메일 보내기" > <center>百度图片</center>
<a href='https://www.php.cn/link/deee9fe5195586bf4545518a76aff2f7'>百度⼀下</a>
"""
html = MIMEText(content, 'html', 'utf-8')
msg.attach(html)
# 发送邮件
con.sendmail('xxxx@163.com', '726550822@qq.com', msg.as_string())
con.quit()

Python을 사용하여 이메일 보내기

3.3 첨부 파일 보내기

이메일의 주요 내용 외에도 다양한 파일을 별도로 첨부 파일로 보내야 하는 경우가 있습니다. 다음:

from email.mime.text import MIMEText
⽂文件对象 = MIMEText(⽂件二进制数据, 'base64', 编码⽅式)
文件对象["Content-Disposition"] = 'attachment; filename="⽂件名"'
邮件对象.attach(⽂件对象)

특정 코드:

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.header import Header
from email.mime.message import MIMEMessage from copy import deepcopy
con = smtplib.SMTP_SSL('smtp.163.com', 465)
con.login('xxxx@163.com', 'xxxxxx')
msg = MIMEMultipart()
subject = Header('⽂文件附件发送', 'utf-8').encode() msg['Subject'] = subject
msg['From'] = 'xxxx@163.com <xxxx@163.com>'
msg['To'] = '726550822@qq.com'
# 添加⽂文件附件
file1 = MIMEText(open('files/test.txt', 'rb').read(), 'base64', 'utf-8')
file1["Content-Disposition"] = 'attachment; filename="test.txt"'
msg.attach(file1)
file2 = MIMEText(open('files/pyecharts的使⽤用.pdf', 'rb').read(), 'base64', 'utf-8')
file2["Content-Disposition"] = 'attachment; filename="test.pdf"'
msg.attach(file2)
# 发送邮件
con.sendmail('xxxx@163.com', '726550822@qq.com', msg.as_string())
con.quit()

Python을 사용하여 이메일 보내기

위 내용은 Python을 사용하여 이메일 보내기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 51cto.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제