У меня проблемы с отправкой писем на мою учетную запись Gmail. Я получаю сообщение об ошибке тайм-аута. И это меня озадачивает, потому что я в основном скопировал настройки из рабочего проекта, который делал раньше. Но потом я попробовал рабочий проект, и он выдает ту же ошибку. Насколько я знаю, порт Nodemailer по умолчанию для Gmail — 465, который использует SSL, поэтому он включен. Я пробовал три разные учетные записи Gmail, две из них имеют 2FA, одна из них настроила XOAuth, а в третьей я включил менее безопасные приложения. Все провалилось с той же ошибкой.
Вот фрагмент кода, где, как мне кажется, проблема:
smtpConfig =
service: "Gmail"
connectionTimeout : "7000" #waiting for 60s is annoying
greetingTimeout : "7000"
# auth:
# XOAuth2:
# user: receiverEmail
## pass: appSpecificPassword
# clientId: myClientId
# clientSecret: itIsMySecret
# refreshToken: myRefreshToken
auth:
user: receiverEmail
pass: appSpecificPassword
secure: true # use SSL
debug: true
Позже я поместил его в функцию. В промежутках мне пришлось собрать конверт вместе.
smtpTrans = nodemailer.createTransport(smtpTransport(smtpConfig), ->
#Setup configs are on top, because we need to config before we use the POST method according to express
)
Этот даже не срабатывает, когда вы помещаете туда console.log.
На Nodemailers Github я нашел следующее, чтобы попробовать в терминале:
openssl s_client -crlf -connect smtp.gmail.com:465
который должен дать хороший ответ 200, но это не так, это дает мне тайм-аут. Каждый другой доступный порт ответил тем же. Я попросил друга попробовать его на своем компьютере, и он отлично работает. Итак, я снова ищу проблему на своем компьютере - может быть, в моей операционной системе, версии узла, мы настраиваем конфиги по-разному, и я не заметил? У меня заканчиваются варианты, поэтому я ищу помощи здесь.
Мой брандмауэр отключен, в этом случае нет проблем с настройкой дополнительных портов.