테스트 사이트 - 개발 중인 베타 버전입니다

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

· 1년 전 · 443

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

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

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

 

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

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

 

https://sir.kr/g5_plugin/4270

 

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

 

978180634_1718948290.6575.png

 

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

 

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

 

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

 

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

 

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

 

[code]

pip install requests

[/code]

 

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

[code]

import smtplib

import requests

[/code]

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

 

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

[code]

MAILGUN_API_KEY = "api-key"

MAILGUN_DOMAIN = "send 도메인"

[/code]

 

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

 

978180634_1718948499.2302.png

 

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

 

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

 

[code]

    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}")

[/code]

 

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

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

 

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

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

 

고맙습니다.

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

게시글 목록

번호 제목
178
166
163
162
161
160
149
148
147
136
125
110
98
96
94
93
92
91
90
85
80
76
72
69
68
64
57
56
53
51