30 ofdjango- [メール本文の値は文字列です]を満たす単一または複数のメールを送信します

1.このブログを書く目的

主な記録は、djangoを介してこの機能を実現する方法です。[メール本文の値は文字列です]を満たす単一または複数のメールを送信します。

Djangoのメール機能は非常にシンプルです。メール関連の機能はカプセル化されています。主にこの機能の使用方法を知る必要があります。

  1. 本文の値が文字列である単一の電子メールを送信するには、次の関数を使用します。send_mail();
  2. 本文の値が文字列である複数の電子メールを送信するには、次の関数を使用します。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のメールボックスを

操作手順はおおまかに以下のとおりです。

  1. Webサイトのqqメールボックスに正常にログインします。
  2. [設定-アカウント-POP3 / IMAP / SMTP / Exchange / CardDAV / CalDAVサービス]エリアに入ります。
  3. [認証コードの生成]ボタンをクリックして、新しい認証コードを生成します。
  4. この認証コードをコピーします。

操作手順に対応する関連するスクリーンショットは次のとおりです。

 

 

 

おすすめ

転載: blog.csdn.net/LYX_WIN/article/details/114839636