SMTPServerDisconnected в /auth/users/
В настоящее время я работаю с Python 3.10.1 и Django 4.0.1 на задней стороне, и React/Redux на передней стороне. У меня есть приложение, в котором после того, как пользователь зарегистрируется, ему будет отправлено письмо с активацией. Однако письмо так и не появляется, и при посещении бэкенда я вижу эту ошибку на вкладке network в devtools.
Я перешел с gmail из-за обходных путей, которые в итоге не сработали для меня, поэтому я перешел на SendGrid, но и он пока не работает.
<settings.py
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.sendgrid.net'
EMAIL_HOST_USER = 'api'
EMAIL_HOST_PASSWORD = 'password'
DEFAULT_FROM_EMAIL = 'email@gmail.com'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
auth.js
// sign up function
export const signup = (email, password, re_password) => async (dispatch) => {
const config = {
headers: {
'Content-Type': 'application/json',
'X-CSRFToken': csrftoken,
},
};
const body = JSON.stringify({ email, password, re_password });
try {
const response = await axios.post(
`${process.env.REACT_APP_API_URL}/auth/users/`,
body,
config
);
dispatch({
type: SIGNUP_SUCCESS,
payload: response.data,
});
} catch (err) {
dispatch({
type: SIGNUP_FAIL,
});
}
};
Traceback (если это поможет)
Имя пользователя должно быть apikey
, а не api
. Из документации :
Чтобы использовать ваш API ключ с SMTP интеграцией, вы должны установить ваше имя пользователя в строку
apikey
. Вашим паролем будет ключ API, который вы сгенерировали на предыдущем шаге.
Если вы используете бесплатный аккаунт SendGrid, требуется проверка одного отправителя. Этот дополнительный шаг помогает SendGrid соблюдать законы о борьбе со спамом.
Чтобы исправить это, следуйте инструкциям SendGrid для проверки учетной записи электронной почты. Отправка электронной почты с бесплатных сервисов, таких как gmail.com или yahoo.com, больше не поддерживается. Это связано с протоколом аутентификации электронной почты DMARC. Поэтому для отправки реальных сообщений электронной почты теперь необходимо использовать пользовательский, несвободный почтовый ящик, принадлежность которого можно подтвердить.