장고:이메일app 만들기: 두 판 사이의 차이

학교의 모든 지식. SMwiki
둘러보기로 이동 검색으로 이동
편집 요약 없음
편집 요약 없음
23번째 줄: 23번째 줄:
</syntaxhighlight>
</syntaxhighlight>


=== settings.py 수정 ===
이메일을 보내기 위한 smtp 서버를 설정해주어야 한다. 없는 내용이니 다음과 같이, 이용하려는 서비스에 따라 추가해 준다.<syntaxhighlight lang="python">
# Email settings
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_USE_TLS = True
EMAIL_PORT = 465  # 장고 한그릇 뚝딱에선 587이라 기입되어 있다.
EMAIL_HOST_USER = '각자 이메일'
EMAIL_HOST_PASSWORD = '각자 암호'
</syntaxhighlight>
==view 작성==
==view 작성==


=== 사전작업 ===
===사전작업===
구글이든 어떤 서비스에서든 <code>계정>보안</code>탭에서 앱의 엑세스를 허용한다.
구글이든 어떤 서비스에서든 <code>계정>보안</code>탭에서 앱의 엑세스를 허용한다.
<br /><syntaxhighlight lang="python">
 
=== view 작성 ===
장고의 기능을 사용하면 우리가 해왔던 것들처럼 탬플릿을 사용할 수 있다.
 
딱히 메일서버를 연동시키는 일도 없이 좋다.<syntaxhighlight lang="python">
from django.core.mail import send_mail, EmailMessage  # 이메일을 보내는 모듈. 파이썬에선 smtplib를 사용하지만, 장고 자체의 기능이 더 편리하다.
from django.template.loader import render_to_string  # 템플릿을 렌더링하기 위한 기능.
 
def sendEmail(request):
    # 데이터 처리
    receiver = request.POST['receiver']
   
    content = {'담을변수': 담길변수}
   
    ###사전정보 입력
    # 보내는 사람 정보
    sender = "[email protected]"
    sender_password = "설정한 비밀번호"
    # 메시지객체생성
    msg_html = render_to_string('탬플릿.html', content)
    subject = "제목입력"
   
    msg = EmailMessage(subject = subject,
                        body = msg_html,
                        from_email= sender,
                        bcc= inputReceiver.split(','))
    msg.content_subtype = 'html'
    # 메일발송
    msg.send()
    return redirect(....)
 
 
</syntaxhighlight>파이썬의 모듈을 이용한 복잡한 방식.<syntaxhighlight lang="python">
import smtplib  # 이메일을 보내는 모듈
import smtplib  # 이메일을 보내는 모듈
from email.mime.text import MIMEText  # 메일 본문을 html로 나타내기 위해
from email.mime.text import MIMEText  # 메일 본문을 html로 나타내기 위해
39번째 줄: 81번째 줄:
     # 보내는 사람 정보
     # 보내는 사람 정보
     sender = "[email protected]"
     sender = "[email protected]"
     sender_password = "Vudghk99$$"
     sender_password = "설정한 비밀번호"
     # 메일서버로그인
     # 메일서버로그인
     server = smtplib.SMTP_SSL('smtp.gmail.com', 465)
     server = smtplib.SMTP_SSL('smtp.gmail.com', 465)

2020년 11월 18일 (수) 23:31 판

장고! 웹 프레임워크! 틀:장고

  1. 장고:개요
  2. 장고:웹페이지설계
    1. 장고:앱
    2. 장고:url
    3. 장고:model
      1. 장고:DB
      2. 장고:모델 필드
      3. 장고:모델의 변경
    4. 장고:view
      1. 장고:클래스형 뷰, 제네릭 뷰
      2. 장고:view 각종 기능
    5. 장고:template
    6. 장고:static. 정적파일 사용하기
      1. 장고:CSS 사용하기
      2. 장고:JS 사용하기
      3. 장고:글꼴 사용
      4. 장고:부트스트랩
    7. 장고:media. 미디어 파일 사용하기
  3. 장고:관리자페이지
  4. 장고:settings.py
  5. 장고:기능구현
    1. 장고:회원관리
    2. 장고:유저
    3. 장고:커스텀 유저
    4. 장고:소셜로그인
    5. 장고:입력받기
    6. 장고:저장된 내용 활용하기
    7. 장고:변수 내보내기
    8. 장고:글쓰기
    9. 장고:페이징(페이지나누기)
    10. 장고:답변쓰기(댓글쓰기)
    11. 장고:추천,즐겨찾기
    12. 장고:새글(최신글) 나타내기
    13. 장고:썸머노트 설치
    14. 장고:네비게이션 바 만들기
    15. 장고:검색기능
    16. 장고:카테고리 만들기
    17. 장고:사진 올리기
    18. 장고:파일 업로드
    19. 장고:이메일app 만들기
    20. 장고:매직 그리드
  6. 장고:웹서비스
    1. 장고:Git
    2. 장고:리눅스에 올리기
    3. 장고:우분투에 올리기(nginx 사용)
    4. 장고:도커로 올리기
  7. 장고:팁

개요

장고에서 사용자에게 이메일을 보낼 일이 있다. 이러한 기능들을 한번에 관리하기 위한 앱.

과정

앱 생성

앱을 생성하고..

urls.py수정

앱의 url경로를 추가한다.

path('Email/', include('Email.urls'))

앱의 urls.py 작성

app_name = 'email'
from . import views

urlpatterns = [
    path('send/', views.sendEmail, name='send')]

settings.py 수정

이메일을 보내기 위한 smtp 서버를 설정해주어야 한다. 없는 내용이니 다음과 같이, 이용하려는 서비스에 따라 추가해 준다.

# Email settings
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_USE_TLS = True
EMAIL_PORT = 465  # 장고 한그릇 뚝딱에선 587이라 기입되어 있다.
EMAIL_HOST_USER = '각자 이메일'
EMAIL_HOST_PASSWORD = '각자 암호'

view 작성

사전작업

구글이든 어떤 서비스에서든 계정>보안탭에서 앱의 엑세스를 허용한다.

view 작성

장고의 기능을 사용하면 우리가 해왔던 것들처럼 탬플릿을 사용할 수 있다.

딱히 메일서버를 연동시키는 일도 없이 좋다.

from django.core.mail import send_mail, EmailMessage  # 이메일을 보내는 모듈. 파이썬에선 smtplib를 사용하지만, 장고 자체의 기능이 더 편리하다.
from django.template.loader import render_to_string  # 템플릿을 렌더링하기 위한 기능.

def sendEmail(request):
    # 데이터 처리
    receiver = request.POST['receiver']
    
    content = {'담을변수': 담길변수}
    
    ###사전정보 입력
    # 보내는 사람 정보
    sender = "[email protected]"
    sender_password = "설정한 비밀번호"
    # 메시지객체생성
    msg_html = render_to_string('탬플릿.html', content)
    subject = "제목입력"
    
    msg = EmailMessage(subject = subject,
                        body = msg_html,
                        from_email= sender,
                        bcc= inputReceiver.split(','))
    msg.content_subtype = 'html'
    # 메일발송
    msg.send()
    return redirect(....)

파이썬의 모듈을 이용한 복잡한 방식.

import smtplib  # 이메일을 보내는 모듈
from email.mime.text import MIMEText  # 메일 본문을 html로 나타내기 위해
from email.mime.multipart import MEMEMultipart  # 메시지객체를 위해

def sendEmail(request):
    # 어디로 보낼 것인가? 입력받은 데이터를 토대로.
    receiver = request.POST['receiver']
    
    ###################사전정보 입력
    # 보내는 사람 정보
    sender = "[email protected]"
    sender_password = "설정한 비밀번호"
    # 메일서버로그인
    server = smtplib.SMTP_SSL('smtp.gmail.com', 465)
    server.login(sender, sender_password)
    # 메시지객체생성
    msg = MIMEMultipart('alternative')
    msg['Subject'] = "제목입력"
    msg['From'] = sender
    msg['To'] = receiver
    msg.attach(content)
    # 메일발송
    server.sendmail(msg['From'], msg['To'], )
    server.quit()
    return redirect(....)