Pythonを使用してメールを送信する方法

WBOY
リリース: 2023-04-20 09:16:06
転載
4319 人が閲覧しました

1. メール送信に使用するメールアカウントを準備します

メールアカウントとメールログイン認証コードを準備します。さまざまな種類のメールボックスの認証コードを取得する方法は似ています。ここでは、QQ メールボックスを例として、認証コードを取得する手順を示します:

ステップ 1: 次のコマンドを使用して QQ メールボックスにログインします。 Web ページにアクセスして、ヘルプ センターを見つけます。

Pythonを使用してメールを送信する方法

ステップ 2: ヘルプ センターの「クライアント設定」で 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 コンテンツ、添付ファイルなど) などを構築するために使用できる別のライブラリである email が必要です。電子メールの件名とテキスト コンテンツについて簡単に説明します。およびその他の形式のコンテンツについては、後ほど電子メールのコンテンツのセクションで詳しく説明します。

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'
# 设置邮件接受者
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'
msg['To'] = '726550822@qq.com'
# 添加html内容
content = """我是正⽂中的标题邮件正文描述性文字1邮件正⽂描述性文字2 百度图片百度⼀下
"""
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'
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 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート