23.11.05 23:43 작성
·
550
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.py 와 common.py 입니다 ㅜㅜ
답변 3
0
2023. 11. 06. 08:05
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)
이렇게 햇는데 계속
이와 같은 오류가 뜹니다 !! ㅠㅠㅠㅠ
제가 맞게 설정한 건가요? 감사합니다 .. ㅠ
0
2023. 11. 06. 07:33
+) 그리고 EMAIL_HOST_PASSWORD 를 네이버 계정 패스워드로 해야 하나요?
그럼 여기서는 sendgrid api key 를 사용하지 않는 것인지 궁금합니다..
그리고 SEMAIL_USE_TLS 대신 EMAIL_USE_SSL 설정을 해주어야 하는 건가요..
계속 연결이 안되는 오류가 뜨는데 왜이러는지 모르겠네요 ㅠㅠ
2023. 11. 06. 08:08
네이버 smtp 에서는 use tls 설정 대신에 use ssl 설정만 해주시면 됩니다.
제가 방금 테스트해본 settings 입니다. EMAIL_HOST_PASSWORD 에는 네이버 암호를 지정하시면 되는 데, 네이버 계정에 2차 인증이 걸려있으신 경우에는 https://nid.naver.com/user2/help/myInfoV2?m=viewSecurity&lang=ko_KR 페이지를 통해, 별도의 로그인 암호를 할당받아서 지정하셔야 합니다.
아래처럼 애플리케이션 비밀번호를 할당받아서, 생성된 84B***** 암호를 지정하시면 되구요.
그래도 잘 해결이 안 된다면, 프로젝트 전체 코드를 제 메일 help@pyhub.kr 로 보내주시면, 코드를 확인해드리겠습니다. 제게 네이버 메일 비밀번호가 노출될 수 있으니, 다른 비밀번호로 변경 후에 코드를 알려주시는 것이 좋겠죠.
확인해보시고 댓글 부탁드립니다. 많이 답답하시겠지만, 같이 차근차근 해결해보시죠. 화이팅입니다! :-)
0
2023. 11. 05. 23:54
안녕하세요.
SendGrid 정책이 깐깐하게 변경되어, 네이버 이메일로 가입이 안 되는 경우가 발생하고 있습니다. // SendGrid를 사용하지 않더라도 네이버 메일서버에서도 SMTP를 지원하니까 이를 활용해보실 수 있습니다.
아래 링크의, 강의 설명 하단에 네이버 메일 SMTP를 활용하는 방법에 대해서 설명을 해두었으니, 참고해보시겠어요?
화이팅입니다.
2023. 11. 06. 08:12
안녕하세요. 아래 답변에도 썼지만
네이버 smtp 메일에서는 EMAIL_USE_TLS =True 설정은 지우시고, EMAIL_USE_SSL = True 설정으로 해주세요.
저도 EMAIL_USE_TLS = True 설정으로 해보니, kwonjiwoo 님과 동일한 오류가 발생하네요. EMAIL_USE_SSL = True 설정으로 바꾸시면 해결이 되실 듯 합니다.
화이팅입니다. :-)