Контактная форма Django отправляет письмо обратно на мой собственный адрес электронной почты

views.py

def contact(request):
    if request.method == "POST":
        username    =   request.POST['username']
        phone       =   request.POST['phone']
        customer_email  =   request.POST['customer_email']
        subject     =   request.POST['subject']
        message     =   request.POST['message']

        #send Email
        send_mail(subject, message, customer_email, ['myemail@gmail.com'])

        return render(request, 'contact.html', {'username': username })

    else:
        return render(request, 'contact.html', {})

Это мой html

<form method="post" action="{% url 'contact' %}" id="contact-form">
  {% csrf_token %}
  <div class="row clearfix">
    <div class="col-lg-6 col-md-6 col-sm-12 form-group">
      <input type="text" name="username" placeholder="Name" required="">
    </div>

    <div class="col-lg-6 col-md-6 col-sm-12 form-group">
      <input type="text" name="phone" placeholder="Phone" required="">
    </div>

    <div class="col-lg-6 col-md-6 col-sm-12 form-group">
      <input type="email" name="customer_email" placeholder="Email" required="">
    </div>

    <div class="col-lg-6 col-md-6 col-sm-12 form-group">
      <input type="text" name="subject" placeholder="Subject" required="">
    </div>

    <div class="col-lg-12 col-md-12 col-sm-12 form-group">
      <textarea name="message" placeholder="Message"></textarea>
    </div>

    <div class="col-lg-12 col-md-12 col-sm-12 form-group">
      <button class="theme-btn btn-style-one" type="submit" name="submit-form">Submit Now</button>
    </div>
  </div>
</form>                          

Вот форма, которая должна отправить письмо на customer_email, но вместо этого я получаю письмо обратно. То есть отправитель и получатель оба одинаковые. В чем здесь проблема? Также возможно ли добавить email и номер телефона клиента в само сообщение электронной почты. Пожалуйста, помогите.

В документации для send_mail сказано:

send_mail(subject, message, from_email, recipient_list, ...)

так что когда вы звоните

send_mail(subject, message, customer_email, ['myemail@gmail.com'])

вы подключаете customer_email к from_email и ваш адрес электронной почты к recipient_list... так что да, вы получаете электронное письмо, поскольку вы говорите компьютеру сделать именно это.

Возможно:

username = request.POST['username']
phone = request.POST['phone']
customer_email = request.POST['customer_email']
subject = request.POST['subject']
message = request.POST['message']

content = f"""
{message}

Username: {username}
Phone: {phone}
Email: {customer_email}
"""

send_mail(
  subject=subject,
  message=content,
  from_email=None,  # use default sender from settings
  recipient_list=[customer_email],
)

Просто будьте осторожны со спамом - открытая контактная форма, подобная этой, легко приведет к блокировке вашего адреса или сервера по всему миру, поскольку вы, по сути, позволяете любому использовать ее для отправки сообщения кому угодно.

Вернуться на верх