1.このブログを書く目的
主な記録は、djangoを介してこの機能を実現する方法です。[メール本文の値は文字列です]を満たす単一または複数のメールを送信します。
Djangoのメール機能は非常にシンプルです。メール関連の機能はカプセル化されています。主にこの機能の使用方法を知る必要があります。
- 本文の値が文字列である単一の電子メールを送信するには、次の関数を使用します。send_mail();
- 本文の値が文字列である複数の電子メールを送信するには、次の関数を使用します。send_mass_mail();
完全な操作プロセスは、次のコンテンツで確認できます。
第二に、完全な操作プロセス
1.最初のステップ:[ settings.py ]にメールボックス構成情報を追加します
#次のコードは私が個人的に追加したものであり、デフォルトではdjanoフレームワークによって生成されたものではありません。
# 配置qq邮箱信息
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' # 值必须为这个
EMAIL_USE_SSL = True # SSL加密方式,值必须为True
EMAIL_HOST = 'smtp.qq.com' # 发送邮件的qq邮箱的SMTP服务器
EMAIL_PORT = 465 # QQ邮箱对应的SMTP服务器端口
EMAIL_HOST_USER = '[email protected]' # 发件人
EMAIL_HOST_PASSWORD = 'xolnfbqgdybxji11' # qq授权码(不能使用qq密码只能使用qq授权码)
EMAIL_FROM = 'Rainbow<[email protected]>' # 邮件显示的发件人
2.ステップ2:本文の値が文字列である単一の電子メールを送信する機能を実現します
2.1。最初のステップ:[ helloworld / hello /views.py ]にビュー関数を追加します
from django.core.mail import send_mail
from django.http import HttpResponse, Http404
import time
# 发送邮件正文值为字符串的单个邮件
def send_email_001(request):
send_mail(subject="这是lucas给你们发的邮件标题!",
message="这是邮件的正文!",
from_email="[email protected]",
recipient_list=["[email protected]"],
)
now_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
return HttpResponse("邮件发送成功!发送时间为:%s" % now_time)
2.2。ステップ2:[ helloworld / helloworld /urls.py ]にURLマッチングルールを追加します
url(r"^send_email_001/$",views.send_email_001),
2.3。ステップ3:サービスを再起動します
2.4。ステップ4:任意のブラウザでURLアドレス[ http://0.0.0.0:8000/send_email_001/ ]を入力し、アクセス後に結果を確認します
3.ステップ3:本文の値が文字列である複数の電子メールを送信する機能を実現します
3.1。最初のステップ:[ helloworld / hello /views.py ]にビュー関数を追加します
# 发送邮件正文值为字符串的多个邮件
def send_email_002(request):
first_email = (
"这是lucas给你们发的第一封邮件的邮件标题",
"这是第一封邮件的正文",
"[email protected]",
["[email protected]", ],
)
second_email = (
"这是lucas给你们发的第二封邮件的邮件标题",
"这是第二封邮件的正文",
"[email protected]",
["[email protected]", ],
# ["[email protected]","朋友1的[email protected]","朋友2的[email protected]","朋友3的@qq.com"]
)
send_mass_mail((first_email, second_email), fail_silently=False)
return HttpResponse("多封邮件同时发送成功了")
3.2。ステップ2:[ helloworld / helloworld /urls.py ]にURLマッチングルールを追加します
url(r"^send_email_002/$",views.send_email_002),
2.3.3。ステップ3:サービスを再起動します
2.3.4。ステップ4:任意のブラウザでURLアドレス[ http://0.0.0.0:8000/send_email_002/ ]を入力し、アクセス後に結果を確認します
3.関連知識ポイント
1. send_mail()関数のソースコードの簡単な分析
def send_mail(subject, message, from_email, recipient_list,
fail_silently=False, auth_user=None, auth_password=None,
connection=None, html_message=None):
"""
Easy wrapper for sending a single message to a recipient list. All members
of the recipient list will see the other recipients in the 'To' field.
If from_email is None, use the DEFAULT_FROM_EMAIL setting.
If auth_user is None, use the EMAIL_HOST_USER setting.
If auth_password is None, use the EMAIL_HOST_PASSWORD setting.
Note: The API for this method is frozen. New code wanting to extend the
functionality should use the EmailMessage class directly.
"""
connection = connection or get_connection(
username=auth_user,
password=auth_password,
fail_silently=fail_silently,
)
mail = EmailMultiAlternatives(subject, message, from_email, recipient_list, connection=connection)
if html_message:
mail.attach_alternative(html_message, 'text/html')
return mail.send()
send_mail()関数の各入力パラメーターの分析:
- 件名:(必須、データ型は文字列です)電子メールの件名。
- メッセージ:(必須、データ型は文字列です)メッセージの内容。
- from_email :(必須、データ型は文字列です)電子メールを送信します。
- receive_list :(必須、データ型はリストです)lリストの各値は、メールを受信するための電子メールアドレスです。
- fail_silently :(必須ではありません。データ型はブール値です)値がFalseの場合:電子メールの送信に失敗すると、send_mail()関数は[smtplib.SMTPException]によって提供される例外情報をスローします。
- auth_user :(必須ではありません。データ型は文字列です)SMTPサーバーの認証ユーザー名。このパラメーター値が設定されていない場合、Djangoは[settings.py]の[EMAIL_HOST_USER]構成アイテムの値を使用します。
- auth_password :(必須ではありません。データ型は文字列です)SMTPサーバーの認証パスワード。このパラメーター値が設定されていない場合、Djangoは[settings.py]の[EMAIL_HOST_PASSWORD]構成アイテムの値を使用します。
- 接続:(必須ではありません。データ型は文字列です)電子メールを送信するためのバックエンド。このパラメーター値が設定されていない場合、Djangoは[settings.py]の[EMAIL_BACKEND]構成アイテムの値を使用します。
- html_message :(必須ではありません。データ型は文字列です)値はhtmlコードです。このパラメーターは、send_mail()関数の固有のパラメーターであり、htmlテキストの送信を簡単に実現できます。
2.どのように取得するの認可コードQQのメールボックスを
操作手順はおおまかに以下のとおりです。
- Webサイトのqqメールボックスに正常にログインします。
- [設定-アカウント-POP3 / IMAP / SMTP / Exchange / CardDAV / CalDAVサービス]エリアに入ります。
- [認証コードの生成]ボタンをクリックして、新しい認証コードを生成します。
- この認証コードをコピーします。
操作手順に対応する関連するスクリーンショットは次のとおりです。