我想将Django框架中的电子邮件发送给用户。
我设计以下脚本。当我在python ide的本地系统上运行此脚本时,它会将邮件发送给具有SUBJECT和消息正文的用户。
但是相同的代码在django框架中不起作用。它不发送主题,而消息正文仅发送消息的最后一行。
import sys
import calendar
import smtplib
import shutil
import os
import re
from datetime import datetime, timedelta
import mysql.connector
from string import Template
import smtplib
sender = 'mywebsite@organization.com'
receivers = ['employeemail@organization.com']
message = """From: From Person <from@fromdomain.com>
To: To Person <myemail@organization.com>
Subject: Virus arm attack on SMTP e-mail test
This is a test e-mail message.
"""
try:
smtpObj = smtplib.SMTP('email.organization.com')
smtpObj.sendmail(sender, receivers, message)
print("Successfully sent email")
except SMTPException:
print("Error: unable to send email")
期望的结果,这是从本地系统发送电子邮件时得到的。
主题显示为: SMTP电子邮件测试
按摩正文显示为:这是一封测试电子邮件。
谢谢
从Django框架发送邮件时的实际结果
*主题丢失,仅邮件正文打印谢谢
按摩身体显示为:
谢谢
答案 0 :(得分:0)
为什么不使用Django的mailing system。它使用smtplib
,但可以省去处理细节的麻烦。
只需在settings.py
# SMTP Host settings
EMAIL_HOST = ''
EMAIL_PORT = ''
# if your SMTP host needs authentication
EMAIL_HOST_USER = ''
EMAIL_HOST_PASSWORD = ''
# Mail is sent using the SMTP host and port specified in the EMAIL_HOST and
# EMAIL_PORT settings. The EMAIL_HOST_USER and EMAIL_HOST_PASSWORD settings, if
# set, are used to authenticate to the SMTP server, and the EMAIL_USE_TLS and
# EMAIL_USE_SSL settings control whether a secure connection is used.
你很好。
from django.core.mail import send_mail
send_mail(
'Subject here',
'Here is the message.',
'from@example.com',
['to@example.com'],
)