인프런 커뮤니티 질문&답변

kwonjiwoo님의 프로필 이미지
kwonjiwoo

작성한 질문수

파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트

회원 가입 환영 이메일 보내기

sendgrid 메일 발송이 안됩니다 ㅠㅠ

작성

·

593

0

7개월 전에 이 기능을 구현을 했고, python shell 로 메일보내서 1 확인 후 메일 확인, 실제로 회원가입 후 메일 발송되는 것까지 확인을 했습니다.

sendgrid 회원가입은 구글 계정으로, sender 계정 이메일은 naver 이메일로 하였었구요. send_grid_api_key 값은 잘 지정해주었습니다 ㅜㅜ 아직도 python shell 에서 메일을 보내보면 1이 잘 뜨는데 메일이 발송되지 않습니다.. 스팸메일함 전체메일함 다 확인했는데도 안되네요 ㅜㅜㅜㅜ

혹시 몰라서 sender authentication 부분 첨부합니다 ㅜㅜ

class User(AbstractUser):
    class GenderChoices(models.TextChoices):
        MALE = "M", "남성" #전자는 DB에 저장되는 값, 후자는 실제 보여지는 값
        FEMALE = "F", "여성"

    sns_url = models.URLField(blank=True)
    bio = models.TextField(blank=True)
    phone_number = models.CharField(max_length=13, blank=True,
                                    validators=[RegexValidator(r"^010-?[1-9]\d{3}-?{4}$")])
    gender = models.CharField(max_length=1, blank=True, choices=GenderChoices.choices)
    avatar = models.ImageField(blank=True, upload_to="accounts/avatar/ $Y/%m/%d")

    def send_welcome_email(self):
        subject = render_to_string("accounts/welcome_email_subject.txt", {
            "user": self,
        })
        content = render_to_string("accounts/welcome_email_content.txt", {
            "user": self,
        })
        sender_email = settings.WELCOME_EMAIL_SENDER
        send_mail(subject, content, sender_email, [self.email], fail_silently=False)

# SEND GRID 설정
SENDGRID_API_KEY = os.environ.get("SENDGRID_API_KEY")
EMAIL_HOST = 'smtp.sendgrid.net'
EMAIL_HOST_USER = 'apikey'
EMAIL_HOST_PASSWORD = SENDGRID_API_KEY
EMAIL_PORT = 587
EMAIL_USE_TLS = True
WELCOME_EMAIL_SENDER = "신상정보라가렸습니다!!@naver.com"

각각 models.pycommon.py 입니다 ㅜㅜ

 

답변 3

0

kwonjiwoo님의 프로필 이미지
kwonjiwoo
질문자

ADMINS = [
    ('제 이름', '아이디@naver.com')
]

...

# SEND GRID 설정
SENDGRID_API_KEY = os.environ.get("SENDGRID_API_KEY")
EMAIL_HOST = 'smtp.naver.com'
EMAIL_HOST_USER = '네이버아이디'
EMAIL_HOST_PASSWORD = '네이버비밀번호'
EMAIL_PORT = 465
EMAIL_USE_TLS = True
WELCOME_EMAIL_SENDER = "아이디@naver.com"
    def send_welcome_email(self):
        subject = render_to_string("accounts/welcome_email_subject.txt", {
            "user": self,
        })
        content = render_to_string("accounts/welcome_email_content.txt", {
            "user": self,
        })
        sender_email = settings.WELCOME_EMAIL_SENDER
        send_mail(subject, content, sender_email, [self.email], fail_silently=False)

이렇게 햇는데 계속

이와 같은 오류가 뜹니다 !! ㅠㅠㅠㅠ

제가 맞게 설정한 건가요? 감사합니다 .. ㅠ

이진석님의 프로필 이미지
이진석
지식공유자

안녕하세요. 아래 답변에도 썼지만

네이버 smtp 메일에서는 EMAIL_USE_TLS =True 설정은 지우시고, EMAIL_USE_SSL = True 설정으로 해주세요.

저도 EMAIL_USE_TLS = True 설정으로 해보니, kwonjiwoo 님과 동일한 오류가 발생하네요. EMAIL_USE_SSL = True 설정으로 바꾸시면 해결이 되실 듯 합니다.

화이팅입니다. :-)

kwonjiwoo님의 프로필 이미지
kwonjiwoo
질문자

정말 감사드립니다 !! ㅠㅠ

0

kwonjiwoo님의 프로필 이미지
kwonjiwoo
질문자

+) 그리고 EMAIL_HOST_PASSWORD 를 네이버 계정 패스워드로 해야 하나요?

그럼 여기서는 sendgrid api key 를 사용하지 않는 것인지 궁금합니다..

그리고 SEMAIL_USE_TLS 대신 EMAIL_USE_SSL 설정을 해주어야 하는 건가요..

계속 연결이 안되는 오류가 뜨는데 왜이러는지 모르겠네요 ㅠㅠ

 

이진석님의 프로필 이미지
이진석
지식공유자

네이버 smtp 에서는 use tls 설정 대신에 use ssl 설정만 해주시면 됩니다.

제가 방금 테스트해본 settings 입니다. EMAIL_HOST_PASSWORD 에는 네이버 암호를 지정하시면 되는 데, 네이버 계정에 2차 인증이 걸려있으신 경우에는 https://nid.naver.com/user2/help/myInfoV2?m=viewSecurity&lang=ko_KR 페이지를 통해, 별도의 로그인 암호를 할당받아서 지정하셔야 합니다.

image

아래처럼 애플리케이션 비밀번호를 할당받아서, 생성된 84B***** 암호를 지정하시면 되구요.

image

그래도 잘 해결이 안 된다면, 프로젝트 전체 코드를 제 메일 help@pyhub.kr 로 보내주시면, 코드를 확인해드리겠습니다. 제게 네이버 메일 비밀번호가 노출될 수 있으니, 다른 비밀번호로 변경 후에 코드를 알려주시는 것이 좋겠죠.

확인해보시고 댓글 부탁드립니다. 많이 답답하시겠지만, 같이 차근차근 해결해보시죠. 화이팅입니다! :-)

 

0

이진석님의 프로필 이미지
이진석
지식공유자

안녕하세요.

SendGrid 정책이 깐깐하게 변경되어, 네이버 이메일로 가입이 안 되는 경우가 발생하고 있습니다. // SendGrid를 사용하지 않더라도 네이버 메일서버에서도 SMTP를 지원하니까 이를 활용해보실 수 있습니다.

아래 링크의, 강의 설명 하단에 네이버 메일 SMTP를 활용하는 방법에 대해서 설명을 해두었으니, 참고해보시겠어요?

https://www.inflearn.com/course/lecture?courseSlug=%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%9E%A5%EA%B3%A0-%EC%9B%B9%EC%84%9C%EB%B9%84%EC%8A%A4&unitId=90578

화이팅입니다.

kwonjiwoo님의 프로필 이미지
kwonjiwoo
질문자

가입은 구글로 하고 보내는 이메일을 네이버로 한 것인데도 저걸로 해결 될까요?!!! ㅜㅜㅜㅜ (제발)

kwonjiwoo님의 프로필 이미지
kwonjiwoo

작성한 질문수

질문하기