unable to get entered name value into send_mail () message?

Hi,

last problem, maybe a mailgun problem?

my contact form is working ok and the email and most of the details go via mailgun to my email.

great! success message works.

however, the (from person) ‘name’ is not printed out in the email message body?

unless i use the line below , but then loose the (from) email address value, which works ok.

.format(data[‘message’], data [‘name’])   #if loose email !name appears in body text in received email! 


also tried

.format(data[‘message’], data [‘email’], data['name'])   #no name appears in message?

how do i get the (from) name value into the message?


def contact(request):
if request.method =='POST': 

    name=request.POST.get('name')

    email=request.POST.get('email')

    subject=request.POST.get('subject')

    message=request.POST.get('message') 



    data = {

            'name':name,

            'email':email,

            'subject':subject,

            'message':message

    } 

    print(data)

    message ='''

    New Message:{}



    from:{}

    '''.format(data['message'], data['email']) 

    send_mail(data['subject'],message,'',['x@gmail.com'])

    #return HttpResponse('Thanks')

    messages.success(request,'Thanks Submitted')

   

    return render(request, 'webs/contact.html')

messages.success(request,'Contact Me')

return render(request, 'webs/contact.html')

Thanks in advance

add a third placeholder in your template (or switch to f-strings), and the name will show up correctly in the email body.

message = f"""
New Message: {data['message']}

From: {data['name']} <{data['email']}>
"""

i think it will work

or try with this for full version

from django.core.mail import send_mail
from django.contrib import messages
from django.shortcuts import render

def contact(request):
    if request.method == 'POST': 
        name = request.POST.get('name')
        email = request.POST.get('email')
        subject = request.POST.get('subject')
        message_body = request.POST.get('message') 

        data = {
            'name': name,
            'email': email,
            'subject': subject,
            'message': message_body
        } 

        print(data)

        message = f"""
        New Message: {data['message']}

        From: {data['name']} <{data['email']}>
        """

        send_mail(
            data['subject'],
            message,
            '',  # from_email (can be your default sender)
            ['x@gmail.com'],  # recipient list
            fail_silently=False,
        )

        messages.success(request, 'Thanks Submitted')
        return render(request, 'webs/contact.html')

    messages.success(request, 'Contact Me')
    return render(request, 'webs/contact.html')

Big Thanks Ridwaan,

Copied the full version - Works Perfect!

Cheers

Steve