게시물 세부정보:

[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(requestf'요청이 성공적으로 접수 되었습니다. 이메일을 확인 해 주세요.')
    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

목록으로