[django toolBox] 메일폼 보내기 contact form 만들기 (모델 없이 views와 gmail 또는 메일건 mailgun 이용)
[django toolBox] 는 장고 사용에 필요한 기능들을 군더더기 없이 짧고 간편하게 설명합니다.
django를 이용해 신청서나 폼메일등에서 Gmail의 smtp로 메일을 발송하는 방법을 소개합니다.
장고를 이용한 폼메일로 이번에는 model을 만들지 말고 바로 이메일만 보내보도록 하겠습니다.
또 gmail 에 이어서 mailgun을 smtp로 사용하는 것도 배우게 됩니다.
만약 model 을 이용한 폼메일 제작은 [django toolBox] Gmail의 smtp를 백엔드로 이용하여 메일 보내기 contact form 만들기 (모델 이용)
을 참고해 주세요.
1.먼저 gmail의 보안수준을 낮게 설정해야 합니다.
https://myaccount.google.com/lesssecureapps
2.settings.py 수정
EMAIL_HOST='smtp.gmail.com'
EMAIL_HOST_USER='123@gmail.com'
EMAIL_HOST_PASSWORD='123123123'
EMAIL_PORT = 587
3.html 폼 입력 받기
<!-- contact form -->
<form action="/question/" method="post" class="signup-form">{% csrf_token %}
<input type="text" placeholder="성함" name="name">
<input type="text" placeholder="이메일" name="e-mail">
<textarea placeholder="하실말씀" name="text">
</textarea>
<button class="site-btn">문의</button>
</form>
4.view만들기
def 문의뷰(request):
if request.method == 'POST':
name = request.POST.get('name')
email = request.POST.get('e-mail')
text = request.POST.get('text')
message = '안녕하세요! 샵투 스쿨입니다.문의가 접수 되었습니다! 빠른시간내에 답변 드리겠습니다!'
send_mail(
'안녕하세요, 샵투스쿨 문의 요청이 접수 되었습니다.',
message,
'보낸사람@gmail.com',
[email],
fail_silently=False,
)
send_mail(
'shop2',
'누군가 문의 요청했습니다. 문의 정보: ' + name + ' , ' + email + ' , ' + text + ' , ' + '.',
'보낸사람@gmail.com',
['벋는사람@gmail.com'],
fail_silently=False,
)
messages.info(request, f'요청이 성공적으로 접수 되었습니다. 이메일을 확인 해 주세요.')
return redirect('courses:home')
5. urls 연결하기
urlpatterns = [
path('question/', 문의뷰, name='question')
]
6.메일건
EMAIL_USE_TLS = True
EMAIL_HOST='smtp.mailgun.org'
EMAIL_HOST_USER='postmaster@mg.도메인.co' #도메인 등록한 경우
EMAIL_HOST_PASSWORD='1234'
EMAIL_PORT = 587
목록으로