Ubuntu

’tag’

Отправка писем через localhost, LAMP и postfix в Ubuntu 14.04

Август 10, 2014

Ранее уже многократно пытался настроить sendmail на локалке (не путать с сервером, домен localhost) и на новой системе вновь решил это сделать и ничего не вышло. Сначала он у меня зависал надолго, но на этот раз удалось сделать, чтобы отрабатывал быстро, но отправлять он в итоге письма так и не стал, хотя статус вызова mail был true.

Конспектирую, так как описанные настройки postfix пришлось совмещать и все наконец-то заработало!

Вот код php скрипта:

<?php
try {
	echo ( int ) mail( 'mymail@yandex.ru', 'hello', 'message' );
} catch ( RuntimeException $e ) {
	print_r( $e );
}
?>

А вот результат (заголовки письма на почте):

Return-Path: <mailfrom@gmail.com>
Received: from yasamposebe.localdomain (ppp85-141-143-38.pppoe.mtu-net.ru. [85.141.143.38])
        by mx.google.com with ESMTPSA id f9sm13453063lbd.46.2014.08.10.05.29.58
        for <mailto@gmail.com>
        (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
        Sun, 10 Aug 2014 05:29:58 -0700 (PDT)
Received: by yasamposebe.localdomain (Postfix, from userid 33)
	id 3F7022A41F4; Sun, 10 Aug 2014 16:29:58 +0400 (MSK)
To: mailto@gmail.com
Subject: hello
X-PHP-Originating-Script: 1000:index.php
Message-Id: <20140810122958.3F7022A41F4@yasamposebe.localdomain>
Date: Sun, 10 Aug 2014 16:29:58 +0400 (MSK)
From: mailfrom@gmail.com (www-data)

message

Воспользовался в сумме двумя инструкциями:

  1. http://onedev.net/post/277
  2. https://rtcamp.com/tutorials/linux/ubuntu-postfix-gmail-smtp/

Во 2-й не было того, что должно быть в 1-й и это очень важно. Если возникнет проблема и у меня о ней ни слова, открываем 2-ю ссылку, там нереальное количество комментариев.

Основной прикол в том, что как только сделал все по 1-й инструкции у меня отправка работать не стала.

Приступим.

Шаг 1

Выполняем в терминале:

sudo apt-get install postfix ca-certificates

Шаг 2

Правим или создаем следующий файл: /etc/postfix/mail.cf

Содержимое заменяем на:

relayhost = [smtp.gmail.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_CAfile = /etc/postfix/cacert.pem
smtp_use_tls = yes

Шаг 3

Создавать файлы transport и generic и генерить по ним db не нужно.

Шаг 4

Создаем файл: /etc/postfix/sasl_passwd

Вставляем в него:

[smtp.gmail.com]:587 USERNAME@gmail.com:PASSWORD

Шаг 5

Выставляем верные права:

sudo chmod 400 /etc/postfix/sasl_passwd
sudo postmap /etc/postfix/sasl_passwd

Шаг 6 (микс)

Этот шаг по-моему ни на что не влияет и состоит из комбинаций к обоих ресурсов.

1) Выполняем:

ln -s /etc/ssl/certs/Equifax_Secure_CA.pem /etc/postfix/cacert.pem

2) Выполняем:

cat /etc/ssl/certs/Thawte_Premium_Server_CA.pem | sudo tee -a /etc/postfix/cacert.pem

Кажется, что это должно защищать вашу почту от взломщиков, но не уверен и очень сильно.

Шаг 7

Все, перегружаем postfix:

sudo /etc/init.d/postfix reload

Шаг 8

Для настройки PHP открываем /etc/php5/apache2/php.ini и добавляем строчку (или редактируем):

sendmail_path = /usr/sbin/sendmail -t -i -f mailfrom@gmail.com

Итог

Выполняем мой скрипт и ничего не доходит. Смотрим логи:

tail /var/log/mail.log

и видим:

Aug 10 17:06:26 localhost postfix/qmgr[10887]: 1E8EE2A60F0: from=<mailfrom@gmail.com>, size=363, nrcpt=1 (queue active)
Aug 10 17:06:27 localhost postfix/smtp[10893]: 1E8EE2A60F0: to=<mailto@gmail.com>, relay=smtp.gmail.com[74.125.143.109]:587, delay=1.8, delays=0.08/0.01/0.79/0.94, dsn=2.0.0, status=sent (250 2.0.0 OK 1407675987 ok1sm13606396lbc.18 - gsmtp)
Aug 10 17:06:27 localhost postfix/qmgr[10887]: 1E8EE2A60F0: removed
Aug 10 17:08:33 localhost postfix/pickup[10886]: EA5C02A60F0: uid=33 from=<mailfrom@gmail.com>
Aug 10 17:08:33 localhost postfix/cleanup[10909]: EA5C02A60F0: message-id=<20140810130833.EA5C02A60F0@yasamposebe.localdomain>
Aug 10 17:08:34 localhost postfix/qmgr[10887]: EA5C02A60F0: from=<mailfrom@gmail.com>, size=363, nrcpt=1 (queue active)
Aug 10 17:08:34 localhost postfix/smtp[10911]: EA5C02A60F0: SASL authentication failed; server smtp.gmail.com[74.125.143.109] said: 534-5.7.14 <https://accounts.google.com/ContinueSignIn?sarp=1&scc=1&plt=AKgnsbsqB?534-5.7.14 KhsSR6I87oK_C4TxS1NdQVQS0PzikND9qj70eQUKk8MeycvYLSVk3BUS0n1iw4_mpyZqQ4?534-5.7.14 3yMySUSy7AyIQTC_-H5OFkRu4_h9s-S-8lQfWUpmmMPQC5auCDcLZJoiShf7RbwUYPA3WN?534-5.7.14 kY8Q2WVTwMAFBLLK3I1w0DJYeWKL1NLJunjI0_j7fgGhZY1R37qD6c-kHtKUiv8WSWS0rB?534-5.7.14 s2GcHKw> Please log in via your web browser and then try again.?534-5.7.14 Learn more at?534 5.7.14 https://support.google.com/mail/bin/answer.py?answer=78754 xu8sm4583002lab.41 - gsmtp
Aug 10 17:08:35 localhost postfix/smtp[10911]: EA5C02A60F0: SASL authentication failed; server smtp.gmail.com[74.125.143.108] said: 534-5.7.14 <https://accounts.google.com/ContinueSignIn?sarp=1&scc=1&plt=AKgnsbtLc?534-5.7.14 31FFOiu5FqZ0Bfjx2r1ySB4Sk0YcmdfsVWH5-Gh9JYixVrhSegWVvaLeiv70vybEEbXYTa?534-5.7.14 LN9iG7Zj6lLE0CQyfj5ahIn_aBsjT--qNNkzx9XoJQwVNGkfL59w880vDElZemD3oxSaja?534-5.7.14 LqO_5fggvWCw2ol4D9_yOzlq1vtp69C5pD2n8tWOPkexG3hWHZMDaVVF8jn-loCGR1EbzY?534-5.7.14 v5j77eg> Please log in via your web browser and then try again.?534-5.7.14 Learn more at?534 5.7.14 https://support.google.com/mail/bin/answer.py?answer=78754 kz1sm4588917lab.11 - gsmtp
Aug 10 17:08:35 localhost postfix/smtp[10911]: connect to smtp.gmail.com[2a00:1450:4010:c04::6d]:587: Network is unreachable
Aug 10 17:08:35 localhost postfix/smtp[10911]: EA5C02A60F0: to=<mailto@gmail.com>, relay=none, delay=1.3, delays=0.11/0.01/1.2/0, dsn=4.4.1, status=deferred (connect to smtp.gmail.com[2a00:1450:4010:c04::6d]:587: Network is unreachable)

Вот мы и подошли к главному. Несмотря на все, пройти аутентификацию не получается. В добавок мы получаем на почту письмо от Google с темой "Ненадежным приложениям разрешен доступ к аккаунту Google". Переходим по ссылке и возможно подтверждаем наши действия, но это не помогает.

Решение - необходимо выполнить все шаги:

  1. переходим по ссылке и жмем "Продолжить": https://accounts.google.com/DisplayUnlockCaptcha
  2. переходим по ссылке и подтверждаем действия при необходимости: https://security.google.com/settings/security/activity
  3. главное, открываем вкладку "Безопасность" в профиле Google: https://www.google.com/settings/security - на панели "Доступ к аккаунту" жмем "Настройки" и выбираем "Включить".

После 3-го пункта повторяем отправку и все работает. Не уверен, что п. 3 безопасен, поэтому лучше его выключать в периоды, когда разработка не ведется и проверять отправку писем на localhost не требуется.

В завершение

Спасибо обоим авторам. Время идет и что-то может меняться. Уверен, что кому-то пригодится моя инструкция. В особенности мне самому, когда настанет время все переустанавливать.

Tags: , , , ,
Записано в Linux    |    Постоянная ссылка

Пробую LinuxMint как замену Ubuntu 12.10

Ноябрь 13, 2012

От нелучших своих впечатлений от Ubuntu 12.10 решил попробовать LinuxMint, мне его на днях посоветовал брат. До этого о данной ветке Linux ничего не слышал.

Скачал 32-бита Mate, записал на диск, запустился в live. В целом очень все понравилось. GNOME 2, удобный, стабильный интерфейс. Думаю завтра заменить Ubuntu 12.10 на LinuxMint Mate.

Tags: , , ,
Записано в Linux, Ubuntu    |    Постоянная ссылка

Неправильная установка gnome-shell в Ubuntu 12.10

Ноябрь 9, 2012

Ранее я упоминал в блоге о своих впечатлениях об Ubuntu 12.10 и говорил об установке gnome-shell следующим образом:

sudo add-apt-repository ppa:gnome3-team/gnome3
sudo apt-get update
sudo apt-get install gnome-shell

После подобной установки и работе в режиме "Gnome (no effects)", после очередного обновления системы пропадает возможность создавать новый файл по нажатию на правую кнопку мыши, а также меняется интерфейс самого наутилуса не в лучшую сторону.

Оказалось, что подключение стороннего репозитория вызывало подобный эффект. Эта строчка:

sudo add-apt-repository ppa:gnome3-team/gnome3

Ubuntu 12.10 я переустановил и без добавления данного репозитория, интерфейс наутилуса не меняется. Жаль, что это не избавляет саму систему от непонятных критичных ошибок...

Tags: , , ,
Записано в Ubuntu    |    Постоянная ссылка