그누6 메일 전송 방법을 SMTP>메일건으로 변경하기 > 그누보드6 팁자료실

그누보드6 팁자료실

그누보드6, 파이썬에 대한 팁과 자료를 올려주세요.
그누보드6 실서비스를 위한 웹서버 설정

그누6 메일 전송 방법을 SMTP>메일건으로 변경하기 정보

그누6 메일 전송 방법을 SMTP>메일건으로 변경하기

본문

그누6에서는 SMTP를 활용하여, 메일 전송을 하고 있지만, 해외 클라우드 환경에서는 SMTP 열기가 참 어렵습니다. 

아니 열어 달라고 하면 열어주기는 하지만, 소명해야 하는 등

조금 귀찮아 다른 플러그인을 많이 사용하고 있습니다.

 

그누5에서 @명랑폐인 님께서 공유해주신 메일건 사용을 하시는 분들이라면

그누6에서도 똑같이 사용할 수 있습니다.

 

https://sir.kr/g5_plugin/4270

 

설정 이나 이런건 위 내용에 참고 해주세요

 

978180634_1718948290.6575.png

 

테스트 해보니 메일검사 / 테스트 메일 / 회원가입 관리자 메일전송 / 이메일 인증까지 다 잘됩니다.

 

로컬에서도 정상적으로 테스트가 잘 되니 적용해보시는 것도 좋을 듯 합니다.

 

단. 해당 mail 함수 수정 시 원본 업데이트 시 원복 되므로 백업을 통해 주기적으로 해당 함수만 복원해주시면 됩니다.

 

다른 부분은 건드릴 필요 없이 mailer 함수 하나만 변경 하였습니다.

 

먼저 requests 를 설치 해야 합니다.

 


pip install requests

 

그리고 lib/mail.py 파일을 열어주셔서 상단에 requests 임포트 해주세요


import smtplib
import requests

smtplib 바로 밑에 리퀘스트를 추가해주시면 됩니다.

 

그리고 _SMTP_PASSWORD = settings.SMTP_PASSWORD 코드 바로 아래에 api 키 및 도메인을 입력해주세요


MAILGUN_API_KEY = "api-key"
MAILGUN_DOMAIN = "send 도메인"

 

그리고 원래 메일 함수를 주석 달아주세요

 

978180634_1718948499.2302.png

 

혹시 몰라서 지우진 않고 주석만 달았습니다^^;

 

그리고 pass 다음줄부터 다음 코드를 추가 해주시면 끝입니다.

 


    try:
        from_address = formataddr((str(Header(from_name, 'utf-8')), from_email))
        to_address = formataddr((str(Header(to_name, 'utf-8')), to_email))
        response = requests.post(
            f"https://api.mailgun.net/v3/{MAILGUN_DOMAIN}/messages",
            auth=("api", MAILGUN_API_KEY),
            data={"from": from_address,
                  "to": [to_address],
                  "subject": subject,
                  "html": body})
        response.raise_for_status()  # 요청이 성공하지 못하면 예외 발생
        print("메일이 성공적으로 발송되었습니다.")
    except requests.exceptions.RequestException as e:
        print(f"메일을 보내는 중에 오류가 발생했습니다. {e}")

 

이렇게 해주시면, 메일건을 활용한 메일을 완성하실 수 있습니다.

사용법은 기존 메일러 함수와 동일하기 때문에 아무것도 건드릴 필요가 없습니다.

 

앞서 언급해드린데로 라이브러리 함수 자체를 건드리는 것이라,

추후 업데이트 되었을 때 원상 복구 되는 부분을 감안해 해당 코드 혹은 파일은 별도 보관하시길 바랍니다.

 

고맙습니다.

추천
1
  • 복사

댓글 0개

© SIRSOFT
현재 페이지 제일 처음으로