ফর্ম এর মাধ্যমে gmail email সেন্ড করার জন্য আগে gmail মেইল সেটআপ করতে হবে। এজন্য পূর্বের টিউটোরিয়ালে দেখানো হয়েছে কিভাবে জিমেইল app secret কোড জেনারেট করতে হয়। secret কোড জেনারেট করে নিচের পদ্ধতি
Email Setup Backend
Settings.py
#gmail_send/settings.py
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'olee.techs@gmail.com'
EMAIL_HOST_PASSWORD = 'jzsbfkxvmxiabwow' #past the key or password app here
EMAIL_PORT = 587
EMAIL_USE_TLS = True
DEFAULT_FROM_EMAIL = 'from oleetech'
forms.py
from django import forms
class ContactForm(forms.Form):
email = forms.EmailField(required=True)
subject = forms.CharField(required=True)
message = forms.CharField(widget=forms.Textarea, required=True)
attachment = forms.FileField(required=False)
Views.py
from django.shortcuts import render,redirect
from django.http import HttpResponse
from django.core.mail import EmailMessage
from django.conf import settings
from .forms import ContactForm
def send_email(request):
if request.method == 'POST':
form = ContactForm(request.POST, request.FILES)
if form.is_valid():
# Get form data
email = form.cleaned_data['email']
subject = form.cleaned_data['subject']
message = form.cleaned_data['message']
attachment = form.cleaned_data.get('attachment')
# Create EmailMessage object
email_message = EmailMessage(
subject=subject,
body=message,
from_email=settings.EMAIL_HOST_USER,
to=[email],
)
# Attach file to email
if attachment:
email_message.attach(attachment.name, attachment.read(), attachment.content_type)
# Send email
try:
email_message.send()
return HttpResponse('Email sent successfully.')
except Exception as e:
return HttpResponse('Email could not be sent. Error message: {}'.format(str(e)))
else:
form = ContactForm()
return render(request, 'nid/email_form.html', {'form': form})