[django toolBox] 장고 mailchimp 연동하기
[django toolBox] 장고 mailchimp 연결하기
1.html 입력 폼
<h4>뉴스레터</h4>
<form action="/newsletter/" method="POST" class="footer-newslatter">
{% csrf_token %}
<input type="email" placeholder="이메일 입력" name="newsemail">
<button type="submit" class="site-btn">구독하기</button>
<p>*최신 기술 뉴스를 받아보세요</p>
</form>
2.Views
from django.conf import settings
from mailchimp_marketing import Client
from mailchimp_marketing.api_client import ApiClientError
# Mailchimp Settings
api_key = settings.MAILCHIMP_API_KEY
server = settings.MAILCHIMP_DATA_CENTER
list_id = settings.MAILCHIMP_EMAIL_LIST_ID
# 메일침프 구독
def subscribe(newsemail):
mailchimp = Client()
mailchimp.set_config({
"api_key": api_key,
"server": server,
})
member_info = {
"email_address": newsemail,
"status": "subscribed",
}
try:
response = mailchimp.lists.add_list_member(list_id, member_info)
print("response: {}".format(response))
except ApiClientError as error:
print("An exception occurred: {}".format(error.text))
def newsletter(request):
if request.method == "POST":
newsemail = request.POST['newsemail']
subscribe(newsemail)
messages.success(request, "뉴스레터 이메일 구독에 감사합니다!") # 구독감사메세지
return redirect('courses:home')
3.연결
from django.urls import path
from users.views import newsletter
urlpatterns = [
path('newsletter/', newsletter, name='newsletter'),
]
4.장고 메일침프 설치
pip install mailchimp-marketing
5.settings.py
# MAILCHIMP CREDENTIALS
MAILCHIMP_API_KEY = ""
MAILCHIMP_DATA_CENTER = ""
MAILCHIMP_EMAIL_LIST_ID = ""
이글만 보기
[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
이글만 보기
[django toolBox] Gmail의 smtp를 백엔드로 이용하여 메일 보내기 contact form 만들기 (모델 이용)
[django toolBox] 는 장고 사용에 필요한 기능들을 군더더기 없이 짧고 간편하게 설명합니다.
django를 이용해 신청서나 폼메일등에서 Gmail의 smtp로 메일을 발송하는 방법을 소개합니다.
gmail의 보안수준을 낮게 설정하기
https://myaccount.google.com/lesssecureapps
settings.py 수정
EMAIL_HOST='smtp.gmail.com'
EMAIL_HOST_USER='123@gmail.com'
EMAIL_HOST_PASSWORD='123123123'
EMAIL_PORT = 587
이글만 보기