Для того, щоб пошта з ваших linux серверів гарантовано доставлялась до адресатів, необхідно використовувати довірені смартхости (relay). Якщо у вас є акаунт Google, поштові сервери Google це те, що вам треба. Давайте налаштуємо sendmail для відправки пошти через gmail…
Підготовка та встановлення
Встановлення Sendmail:
1 |
yum -y install sendmail mailutils mailx sendmail-bin sendmail-cf cyrus-sasl-plain |
Створюємо теу для файла аутентифікації, що містить і’мя користувача та пароль gmail акаунту:
1 2 |
mkdir -m 700 /etc/mail/authinfo/ cd /etc/mail/authinfo/ |
Далі створюємо файл аутентифікації. В даному випадку і’мя файла gmail-idpass:
Створюємо файл:
1 |
nano gmail-idpass |
і додаємо:
1 |
AuthInfo: "U:root" "I:YOURGMAILID@GMAIL.COM" "P:YOURGMAILPASS" |
[Примітка: підставте ваш gmail id та пароль у відповідні поля]
зберігаємо та закриваємо файл.
Теперь необхідно створити хеш-карту для цього файлу:
1 |
makemap hash gmail-idpass < gmail-idpass |
Налаштування Sendmail
Додаємо необхідні директиви у /etc/mail/sendmail.mc. Їх необхідно додати у кінець файлу але перед директивою “MAILER”:
Потрібне місце виглядає приблизно так:
1 2 3 4 5 6 7 8 |
dnl MASQUERADE_DOMAIN(localhost)dnl dnl MASQUERADE_DOMAIN(localhost.localdomain)dnl dnl MASQUERADE_DOMAIN(mydomainalias.com)dnl dnl MASQUERADE_DOMAIN(mydomain.lan)dnl MAILER(smtp)dnl MAILER(procmail)dnl dnl MAILER(cyrusv2)dnl |
Вставляємо директиви перед директивою MAILER(smtp)dnl
1 |
nano /etc/mail/sendmail.mc |
і вставляємо
1 2 3 4 5 6 7 8 9 |
# Adding config for gmail # define(`SMART_HOST',`[smtp.gmail.com]')dnl define(`RELAY_MAILER_ARGS', `TCP $h 587')dnl define(`ESMTP_MAILER_ARGS', `TCP $h 587')dnl define(`confAUTH_OPTIONS', `A p')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(`authinfo',`hash -o /etc/mail/authinfo/gmail-idpass.db')dnl # End config for gmail # |
Зберігаємо файл і виходимо із редактора.
Тепер файл sendmail.mc виглядає так:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
dnl MASQUERADE_DOMAIN(localhost)dnl dnl MASQUERADE_DOMAIN(localhost.localdomain)dnl dnl MASQUERADE_DOMAIN(mydomainalias.com)dnl dnl MASQUERADE_DOMAIN(mydomain.lan)dnl # Adding config for gmail # define(`SMART_HOST',`[smtp.gmail.com]')dnl define(`RELAY_MAILER_ARGS', `TCP $h 587')dnl define(`ESMTP_MAILER_ARGS', `TCP $h 587')dnl define(`confAUTH_OPTIONS', `A p')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(`authinfo',`hash -o /etc/mail/authinfo/gmail-idpass.db')dnl # End config for gmail # MAILER(smtp)dnl MAILER(procmail)dnl dnl MAILER(cyrusv2)dnl |
Тепер необхідно перестворити конфігурацію sendmail:
1 |
make -C /etc/mail |
Перезапускаємо сервіс sendmail:
1 |
/etc/init.d/sendmail reload |
Слушний час перевірити конфігурацію в роботі!
Відсилаємо пошту із командного рядка через sendmail
Тепер ми можемо відіслати лист із командного рядка із допомогою команди:
1 |
echo "Mail Body - Test Message from CENTOS Shell" | mail -s "Subject is test Mail Sending from CLI" -r yourgmailid to-address@example.com |
Ця команда вишле лист на to-address@example.com
Ми можемо відслідковувати процес у логу:
1 |
tail -f /var/log/maillog |
ви повинні побачити щось схоже на:
1 2 3 4 5 6 7 8 9 10 |
Feb 3 14:34:36 ip-10-20-2-202 sendmail[3442]: u13EYare003442: from=asterisk, size=38130, class=0, nrcpts=1, msgid=<Asterisk-1-899475438-900-1823@ip-10-35-2- Feb 3 14:34:36 ip-10-20-2-202 postfix/smtpd[3443]: connect from localhost[127.0.0.1] Feb 3 14:34:36 ip-10-20-2-202 postfix/smtpd[3443]: A4BDD6CC78: client=localhost[127.0.0.1] Feb 3 14:34:36 ip-10-20-2-202 postfix/cleanup[3446]: A4BDD6CC78: message-id=<Asterisk-1-899475438-900-1823@ip-10-20-2-202> Feb 3 14:34:36 ip-10-20-2-202 postfix/qmgr[1333]: A4BDD6CC78: from=<asterisk@ip-10-35-2-202.eu-west-1.compute.internal>, size=39079, nrcpt=1 (queue active) Feb 3 14:34:36 ip-10-20-2-202 sendmail[3442]: u13EYare003442: to="itgala.xyz" <to-address@example.com>, ctladdr=asterisk (501/502), delay=00:00:00, xdelay=00:0=Sent (Ok: queued as A4BDD6CC78) Feb 3 14:34:36 ip-10-20-2-202 postfix/smtpd[3443]: disconnect from localhost[127.0.0.1] Feb 3 14:34:36 ip-10-20-2-202 postfix/smtp[3447]: connect to aspmx.l.google.com[2a00:1450:400b:c02::1b]:25: Network is unreachable Feb 3 14:34:37 ip-10-20-2-202 postfix/smtp[3447]: A4BDD6CC78: to=<to-address@example.com>, relay=aspmx.l.google.com[74.125.24.27]:25, delay=0.41, delays013750wmf.42 - gsmtp) Feb 3 14:34:37 ip-10-20-2-202 postfix/qmgr[1333]: A4BDD6CC78: removed |