Я настроил sendmail для отправки электронной почты через мою учетную запись GMail (Google Mail), то есть через smtp.gmail.com
, путем редактирования /etc/mail/sendmail.mc
и регенерируем sendmail.cf:
-dnl define(`SMART_HOST',`smtp.your.provider')
+define(`SMART_HOST',`[smtp.gmail.com]')
-dnl define(`confAUTH_OPTIONS', `A p')dnl
+define(`confAUTH_OPTIONS', `A p')dnl
-dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
-dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
+TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
+define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
FEATURE(`no_default_msa',`dnl')dnl
FEATURE(`smrsh',`/usr/sbin/smrsh')dnl
+FEATURE(`authinfo',`hash -o /etc/mail/authinfo.db')dnl
FEATURE(`mailertable',`hash -o /etc/mail/mailertable.db')dnl
FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable.db')dnl
-dnl MASQUERADE_AS(`mydomain.com')dnl
+MASQUERADE_AS(`gmail.com')dnl
Выше сокращена разница моих изменений в sendmail.mc.
Я создал /etc/mail/authinfo
с моими учетными данными (имя пользователя и пароль для моей учетной записи GMail; отредактировано):
AuthInfo:smtp.gmail.com "U:user@gmail.com" "P:password" "M:PLAIN"
AuthInfo: "U:user@gmail.com" "P:password" "M:PLAIN"
Но эта настройка заставляет sendmail отправлять электронные письма через стандартный SMTP-порт 25 с использованием smtp.gmail.com ... но недавно мой интернет-провайдер добавил правило брандмауэра, которое блокирует весь трафик на (небезопасный) порт 25.
Как настроить sendmail для отправки писем через порт 465 или 587 (с использованием STARTTLS)?
Добавьте в свой sendmail.mc следующее:
define(`RELAY_MAILER_ARGS', `TCP $h 587')
define(`ESMTP_MAILER_ARGS’, `TCP $h 587′)
Это должно привести к тому, что ваша исходящая почта будет отправлена Sendmail на порт 587.
Вам также необходимо настроить sendmail для использования TLS. Это немного выходит за рамки вашего вопроса, но вы можете найти множество достойных руководств о том, как это сделать с помощью Google, если вы не знакомы.