0

私のフォームは、私のsettings.pyにリストされているアカウントから電子メールを送信しますが、メッセージでは、フォームの件名部分とメッセージ部分しか取得できません。メール内に送信者の部分がないため、誰がメールを送信したのかわかりません。これを修正する方法を知っている人はいますか?

私のforms.py

class ContactForm(forms.Form):
    subject = forms.CharField(max_length=50)
    message = forms.CharField()
    sender = forms.EmailField()

My Views.py 連絡機能

def contact(request):
if request.method == 'POST':
    form = ContactForm(request.POST)
    if form.is_valid():
        subject = form.cleaned_data['subject']
        message = form.cleaned_data['message']
        sender = form.cleaned_data['sender']
        recipients = ['otheremail@gmail.com']
        send_mail(subject, message, sender, recipients)
        return HttpResponseRedirect('/thanks/')

else:
    form = ContactForm()
return render(request, "contact.html", {'form':form,})

私の設定.py

EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'myemail@gmail.com'
EMAIL_HOST_PASSWORD = 'mypassword'
4

2 に答える 2

0

そのコードは正常に動作するはずです。以下で同じことを実装しましたが、うまくいきましたが、gmail で 1 つの問題が発生した可能性があります。

send_mail(Subject, Message, 'myemail@example.ca', To)

問題は、設定でGmailを使用するときに送信者を割り当てた送信者にするために、「送信者」がGmailアカウント設定内の承認済み送信者リストに含まれている必要があることでした。

それが役立つことを願っています。

于 2012-11-28T06:19:54.057 に答える
0

このユーザー アカウントからメールを送信するため、送信者として EMAIL_HOST_USER を使用する必要があります。下記のように、views.py に設定をインポートしてください。

import settings

send_mail(subject, message, settings.EMAIL_HOST_USER, recipients)
于 2012-11-28T06:34:40.133 に答える