【发布时间】:2019-01-03 01:29:35
【问题描述】:
我无法使用 office365 设置在 django 应用程序上发送邮件 我的电子邮件服务设置。
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.office365.com'
EMAIL_HOST_USER = "***********"
EMAIL_HOST_PASSWORD = '***********'
EMAIL_PORT = 587
我的模型.py
from django.db import models
from django import forms
from django.core.validators import RegexValidator
class ContactModel(models.Model):
contact_name = models.CharField("Your Name ",max_length=20)
contact_email = models.EmailField("Your Email ")
content = models.TextField("Message ",max_length=1500)
phone_regex = RegexValidator(regex=r'^\+?1?\d{9,15}$',
message="Please Enter a valid Contact number(in +999999) format'. Up to 15 digits allowed Minimum 9 digits.")
phone_number = models.CharField("Contact Number(in +9999 format)",validators=[phone_regex], max_length=17, blank=True) # validators should be a list
needacallback = models.BooleanField(" I want an Informational Phone Call")
我的意见.py
from django.shortcuts import render,render_to_response
from . import forms
from django.core.mail import EmailMessage
from django.shortcuts import redirect
from django.template.loader import get_template
from django.contrib.sites.shortcuts import get_current_site
from django.template.loader import render_to_string
from django.http import HttpResponse
from django.views.decorators.csrf import ensure_csrf_cookie
def home(request):
form = forms.ContactForm(request.POST or None, request.FILES or None)
if request.method == 'POST':
# form = form_class(data=request.POST)
if form.is_valid():
contactform = form.save(commit=False)
contact_name = request.POST.get(
'contact_name'
, '')
contact_email = request.POST.get(
'contact_email'
, '')
needacallback = request.POST.get(
'needacallback'
, '')
phone_number = request.POST.get(
'phone_number'
, '')
form_content = request.POST.get('content', '')
# Email the profile with the
# contact information
template = get_template('contact_template.html')
context = {
'contact_name': contact_name,
'contact_email': contact_email,
'form_content': form_content,
'phone_number': phone_number,
'needacallback': needacallback,
}
content = template.render(context)
if needacallback:
subject = "This person requested for a call"
else:
subject = "New Message from " + contact_name
email = EmailMessage(
subject,
content,
"Contact me" + '',
['myemail@gmail.com'],
headers={'Reply-To': contact_email}
)
email.send()
contactform.save()
return redirect('thanks')
return render(request, 'index.html', {
'form': form,
})
def thanks(request):
return render(request, 'thanks.html')
我面临的错误是
SMTPSenderRefused at / (501, b'5.1.7 无效地址 [MAXPR01MB0396.INDPRD01.PROD.OUTLOOK.COM]', '=?utf-8?q?Your?=')
模板是一个普通的联系表单,由form.as_p()形成
【问题讨论】:
-
你用的是什么代码?查看如何提供 [mvce] 并将其添加到您的问题中。你收到什么错误?设置或多或少是正确的。
-
我可以了解一下如何在办公室设置上启用连接,因为在 gmail 的情况下,相同的设置适用于我的 gmail 我收到一封邮件说您需要提供访问权限,但我已经搜索了所有 office365设置,真的找不到任何有用的东西
-
您可以尝试将
"Contact me" + '',更改为'youremailaddress@domain.com',,您提供的地址是您的O365 地址吗? -
是的,它工作得很好,非常感谢您的帮助
-
不客气。我会在稍后添加一个答案,以便您接受。