문제

Gmail SMTP 서버를 사용하여 내 웹 사이트 사용자로부터 이메일을 보내고 있습니다.

내 settings.py의 기본 설정입니다

EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'example@example.com'
EMAIL_HOST_PASSWORD = 'pwd'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
SERVER_EMAIL = EMAIL_HOST_USER
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER

사용자가 이메일을 보내려면 이러한 설정을 무시하고 Django의 이메일 보내기 방법을 사용하여 이메일을 보내고 있습니다. 시스템에서 예외가 발생하면 example@example.com에서 이메일을받습니다. 때로는 로그인 한 사용자로부터 이메일을받습니다. 또한 사용자가 내 웹 사이트에서 전송 된 이메일을받을 때 실제 사용자와 다른 주소가 다른 주소를 가지고 있음을 의미 할 수 있습니다.

이 상황을 피하기 위해 무엇을해야합니까?

도움이 되었습니까?

해결책

Django 만 사용합니다 settings.default_from_email 메일 전송 기능이 통과 할 때 None 또는 빈 문자열로 발신자 주소. 이것은 확인할 수 있습니다 django/core/mail.py.

처리되지 않은 예외가있을 때 Django는 mail_admins() 기능 django/core/mail.py 항상 사용합니다 settings.server_email 그리고입니다 나열된 주소로 전송됩니다 Settings.admins. 이것은 또한 확인할 수 있습니다 django/core/mail.py.

Django 자체가 전자 메일을 보내는 유일한 다른 장소는 다음과 같습니다. settings.send_broken_link_emails 사실입니다. 그러면 CommonMiddleware는 나열된 모든 주소로 메일을 보냅니다. settings.managers 그리고 이메일 발신자는입니다 settings.server_email.

따라서 정규 사용자가 귀하의 사이트에서 이메일을받는 유일한 시간은 전화 시점입니다. send_mail(). 따라서 항상 실제 주소를 from_mail 인수와 사용자는 이메일을받는 사용자가 피할 수 있습니다 settings.server_email 또는 settings.default_from_email.

참고 사항 : Django 등록은 우편물을 보내는 Django 플러그 가능의 적어도 한 가지 예입니다. settings.default_from_email 따라서 이와 같은 경우 support@yoursite.com 또는 webmaster@yoursite.com과 같은 적절한 전자 메일 주소인지 확인해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top