Меню Рубрики

Установка php mail debian

Настройка в Debian отправки почты через PHP

Дмитрий Корнев

По умолчанию на веб-сервере с Debian не работает отправка почты, хоть из командной строки, хоть из PHP. Чтобы это поправить можно настроить Exim. Сделать это не сложно. В статье все показано, плюс разбираются другие проблемы, из-за которых бывают сложности с доставкой почты.

Устанавливаем пакет и запускаем его настройку:

При настройке выбираем следующие опции:

  • General type of mail configuration:internet site; mail is sent and received directly using SMTP
  • System mail name:обратная зона (Reverse DNS) для IP-адреса сервера, например d1mon.com
  • IP-addresses to listen on for incoming SMTP connections:127.0.0.1
  • Other destinations for which mail is accepted:домен, с которого мы планируем отправлять письма с этого сервера (через пробел можно указать несколько доменов).
  • Domains to relay mail for:пусто
  • Machines to relay mail for:пусто
  • Keep number of DNS-queries minimal (Dial-on-Demand):No
  • Delivery method for local mail:оставьте по умолчанию
  • Split configuration into small files:No
  • Root and postmaster mail recipient:пусто

После завершения работы мастера настройки, произойдет перезапуск exim4. Пробуйте отправить письмо, теперь должно работать.

Описанные опции предусматривают прямую отправку почты вашим сервером. С этим бывают сложности, т.к. крупые почтовые сервисы не воспринимают всерьез какие-то непонятные неизвестные среверы. Чаще всего именно с таих рассылкатеся СПАМ. Поэтому они жестко фильтруют подобную почту.

Еще обратите внимание, что если вам требуется на сервере не только отправлять почту, но и принимать, то к настройке следует подойти более внимательно. Некоторые настройки по умолчанию могут оказаться не оптимальны. И только этими настройками дело не ограничится. На мой взгляд, если в приеме почты именно вашим сервером нет особой необходимости, то лучше отдать эту задачу сервису «почта для домена» от Yandex.

Если не все письма доходят

Бывает, что письма отправляются не на все ящики. Например, на ящики yandex.ru и gmail.com письма доходят, а на ящик mail.ru – нет. Ошибка при отправке писем может иметь вид:

550 Your HELO string is incorrect

Вероятная причина – не указана обратная зона (reverse dns) для IP-адреса вашего сервера.

Проверить из Windows можно командой:

В Linux проверку можно выполнить командой:

В приведенном примере видно, что обмен данными происходит с сервером, именуемым:

Это плохо. Подобные длинные и «кривые» имена (обратные зоны) даются по умолчанию. Вам нужно, чтобы в ответ сервер выдавал короткое и красивое имя. Это может быть домен вашего сайта, который работает на сервере. Например d1mon.com . Если на сервере размещено несколько сайтов с разными доменами, то можно использовать любой из них, какой вам больше нравится.

Часто изменить обратную зону (reverse dns) можно в панели управления хостинга, но иногда такой настройки не предоставляется, тогда нужно обратиться в службу поддержки, попросив для определенного IP-адреса указать определенную обратную зону.

Кроме обратной зоны надо проверить настройки в файлах /etc/hostname и /etc/hosts . В первом должно быть имя хоста, например d1mon . Вручную менять его в этом файле обычно не надо. Это имя чаще прописывается в панели управления хостинга. После изменений и перезапуска сервера имя хоста прописывается в файл автоматически.

Если обратная зона d1mon.com , а имя хоста d1mon , то во втором файле /etc/hosts должна быть строчка:

Правильный обратный адрес в письмах

Обычно письма, отправляемые скриптами сайта имеют не совсем подходящий обратный адрес. Что-нибудь типа admin@your-host.ru или root@your-host.ru, в зависимости от ваших настроек. Для разного рода автоматизированных уведомлений с сайта принято использовать адрес no-reply@your-host.ru. Прописать нужный обратный адрес можно в файле /etc/email-addresses . Следует добавить строчку:

Здесь www-data – это пользователь сервера под которым выполняются скрипты вашего сайта.

Желательно чтобы тот адрес, который вы прописываете и используете для оправок писем существовал. Некоторые почтовые службы отказываются принимать письма с адресов, которых не существует.

источник

Ubuntu — любимая ОС

Основная задача этого блога, показать как работать в Ubuntu комфортно и с удовольствием!

Отправка почты средствами php-функции mail в Ubuntu/Debian

Итак, задача: настроить на локальном сервере, под управлением ОС Ubuntu отправку почты стредствами php-функции mail().

Читайте также:  Установка brc на калину

1. Установка SendMail из репозитория Ubuntu

В результате выполнения последовательности комманд на указанный емейл (my_exist@gmail.com) должно прийти сообщение («test message»).

Находим и редактируем следующую строчку

Для debian установка такая:

Необязательно, но желательно — обновляем репозиториум командой: apt-get update

Затем ставим sendmail командой: apt-get install sendmail-bin

13 комментариев: Leave Your Comments

Добрый день есть проблема в вожу HELO localhost выдает ошибку,
500 5.5.1 Command unrecognized: «HELLO localhost»

не подскажите как можно решить ?

вместо HELLO надо ввести HELO

посмотрите здесь: http://forums.webscript.ru/showthread.php?s=f62585d6f95ca41bebbaf2e48437aece&post > Ответить Удалить

421 4.3.0 collect: Cannot write ./dfq3CIMoh1007381 (bfcommit, u >Connection closed by foreign host.
на «test message
. «
Почему так?

Помогла перезагрузка.. почему теперь он пишет что всё отправлено (250 2.0.0 q3CInuYY001545 Message accepted for delivery), но сообщение не доходит?

Через smtp все шлет через консоль. но mail() не работает. точнее работает но не отдает по факту отправки true и по итогу получаю 504 от сервера

После того как я выполнил второй пункт статьи все прошло нормально без ошибок..но проблема в том что не доходят письма на почту..это связано с тем что я сижу под VirtualBox?Если нет то в чем проблема и как её решить!

Как? Тож сижу под виртуал бокс.

установил sendmail
sudo apt-get install sendmail
в терминале ввёл telnet localhost smtp
выдало
Trying 127.0.0.1.
Connected to localhost.
Escape character is ‘^]’.
220 localhost.localdomain ESMTP Sendmail 8.14.4/8.14.4/Debian-2ubuntu2; Sat, 10 Nov 2012 01:15:46 +0200; (No UCE/UBE) logging access from: localhost(OK)-localhost [127.0.0.1]HELO localhost
500 5.5.1 Command unrecognized: «P PHELO localhost»

как исправить или что я сделал не так?

Здравствуйте! Делаю настройку на локальном LAMP Ubuntu 16.04 LTS по Вашей инструкции. Адрес получателя my_exist@gmail.com заменил на свой (тоже gmail.com). После ввода команды # test message
Terminal не выдает никаких сообщений. Просто мигает курсор. Письмо не приходит. Что нужно делать дальше?

У меня вот последние строчки выдаются и все на том, почта не приходит
— 250 2.0.0 vBRGYmr2006713 Message accepted for delivery
— Connection closed by foreign host. (эта строчка — после длительного ожидания)

источник

Отправка почты из командной строки Linux

Подготовка

Для начала устанавливаем утилиту для отправки почты. В противном случае мы увидим ошибку mail: command not found.

Синтаксис

Можно отправить сообщение следующей командой:

echo «Test text» | mail -s «Test title» master@dmosk.ru

* в данном примере будет отправлено письмо на электронный адрес master@dmosk.ru с темой Test title и телом письма — Test text.

Если при отправке возникли проблемы, можно проверить логи следующей командой:

Примеры использования командной строки для email-отправки

1. Отправка письма с вложением

Для разных типов дистрибутива Linux команды могут отличаться.

echo ‘Attachment’ | mail -s ‘Subject attachment message’ -a /var/log/maillog master@dmosk.ru

echo ‘Attachment’ | mail -s ‘Subject attachment message’ -a /var/log/maillog -a /var/log/maillog2 master@dmosk.ru

echo ‘Attachment’ | mail -s ‘Subject attachment message’ -A /var/log/maillog -A /var/log/maillog2 master@dmosk.ru

* где /var/log/maillog и /var/log/maillog2 — файлы, которые будут прикреплены к письму. Обратите внимание, что обе команды отличаются по регистру опции a и A — все зависит от версии и сборки Linux (в каких-то нужно использовать маленькую, в каких-то — большую). Также обратите внимание, что в примере для Ubuntu мы отправим 2 файла — для этого просто добавляем к команде еще одну опцию прикрепления файла.

2. Несколько получателей

Для отправки письма нескольким получателям, просто перечисляем их через запятую:

echo «Test text» | mail -s «Test title» master@dmosk.ru,shmaster@dmosk.ru

* в данном примере мы отправил письмо на ящики master@dmosk.ru и shmaster@dmosk.ru.

3. Отправка с копией

Отправить копию на адрес master2@dmosk.ru:

echo «Test copy» | mail -s «Test copy title» master@dmosk.ru -c master2@dmosk.ru

Отправить скрытую копию на адрес master3@dmosk.ru:

echo «Test hidden copy» | mail -s «Test hidden copy title» master@dmosk.ru -b master3@dmosk.ru

4. Указать отправителя

echo «Test text» | mail -s «Test title» -r postmaster@dmosk.ru master@dmosk.ru

echo «Test text» | mail -s «Test title» master@dmosk.ru -aFrom:postmaster@dmosk.ru

Читайте также:  Установка анкера в облицовочный кирпич

5. Отправка через другой SMTP сервер

echo «Test text» | mail -s «Test title» -S smtp=»smtp.mail.ru:25″ master@dmosk.ru

Однако, если сторонний почтовый сервер работает по шифрованному каналу и требует аутентификацию, необходимо ввести следующее:

echo «Test text» | mail -v -s «Test title» -S smtp=»smtp.dmosk.ru:587″ -S smtp-use-starttls -S smtp-auth=login -S smtp-auth-user=»master@dmosk.ru» -S smtp-auth-password=»password» -S ssl-verify=ignore -S nss-config-dir=/etc/pki/nssdb -S from=postmaster@dmosk.ru master@dmosk.ru

* где smtp.dmosk.ru — сервер smtp; 587 — порт для подключения к серверу отправки; smtp-use-starttls указывает на использование шифрования через TLS; smtp-auth=login задает аутентификацию с использованием логина и пароля; smtp-auth-user и smtp-auth-password — соответственно логин и пароль; ssl-verify=ignore отключает проверку подлинности сертификата безопасности; nss-config-dir указывает на каталог с базами nss; from задает поле FROM

При возникновении проблем, можно воспользоваться программой mutt. Сначала поставим ее.

а) если используем CentOS / Red Hat:

б) если используем Ubuntu / Debian:

Теперь можно пользоваться. Синтаксис:

echo «Текст сообщения» | mutt -s «Тема» [дополнительные опции] —

Примеры использования Mutt

echo «Attachment» | mutt -s «subject» -a /var/log/maillog — master@dmosk.ru

* где /var/log/maillog — файл, который будет прикреплен к письму.

echo «Mail From» | mutt -s «subject» -e ‘my_hdr From: Дмитрий

источник

Как установить почтовый сервер в Ubuntu или Debian

Этот урок расскажет как настроить работающий почтовый сервер в Ubuntu или Debian. Как мы знаем, два главных протокола используются в почтовом сервере — это SMTP и POP/IMAP. В этом уроке postfix будет использован для SMTP, в то время как dovecot будет использоваться для POP/IMAP. Они оба с открытым исходным кодом, стабильные и имеют множество настроек.

Пожалуйста, обратите внимание, что вопросы безопасности почтового сервера за сферой данного урока, и они освещены в статье «Как установить Clam Antivirus, SpamAssassin и MailScanner на почтовом сервере под Ubuntu».

Предварительные требования

Каждый домен должен иметь запись на DNS сервере. Рекомендуется НЕ использовать живые домены для целей тестирования. В этом уроке тестовый домен example.tst будет использован в лабораторных условиях. DNS сервер для этого гипотетического домена имел бы, по крайней мере, следующие записи.

  • Прямая зона для example.tst:
  • Обратная зона для example.tst:

Когда настраивается живой почтовый сервер, эти записи могут быть изменены, в соответствии с системными требованиями.

Настройка имени хоста (hostname)

Во-первых, hostname почтового сервера должно быть определено в /etc/hostname и /etc/hosts. Причём в первом файле следует размещать только имя хоста.

Добавление пользователей

Каждый пользователь Linux, по умолчанию, имеет автоматически созданный почтовый ящик. Эти пользователи и почтовые ящики будут использоваться как почтовые учётные записи и соответствующие им адреса почтовых ящиков. Создание пользователя очень простое.

Установка и настройка SMTP

Профиль службы: postfix
Каталог с конфигурационными файлами /etc/postfix/
Скрипт /etc/init.d/postfix
Лог-файл /var/log/mail.log
Номер порта TCP/25

SMTP: Установка postfix

postfix это один из наиболее используемых SMTP серверов, поскольку он стабильный, лёгкий, масштабируемый и высоко настраиваемый. Установка postfix может быть выполнена использованием apt-get.

Во время установки задаются тип почтового сервера и доменное имя.

Так как почтовый сервер будет отправлять письма напрямую к месту назначения, то нужно использовать «Интернет-сайт».

Также задаём доменное имя почтового сервера. Эта настройка определяет, что все письма, приходящие с этого почтового сервера, будут иметь @example.tst в качестве домена отправителя.

Конфигурационные файлы postfix размещены в /etc/postfix. Важны следующие конфигурационные файлы. Некоторые из них могут отсутствовать и их нужно создать вручную.

  • transport: В первую очередь используется для определения, как почта должна быть направлена в направлении конкретного домена назначения. Это тот случай, когда кому-то может быть потребуется отправлять почту, предназначенную для домена XYZ.com, напрямую на IP адрес X.Y.Y.X независимо от каких-либо результатов запросов DNS.
  • access: Может быть использован в целях безопасности, например для блокирования отправителей/получателей и их доменов.
  • aliases: Используется для задания пользовательских псевдонимов. Например, почта отправленная пользователю userA должна быть принята пользователем userB, а также пользователем userC.
  • main.cf: Это конфигурационный файл для postfix.

SMTP: Настройка конфигурационных файлов

Время приготовить конфигурационные файлы. Файлы transport и aliases не поставляются при установке, их нужно создать вручную.

Сделайте резервную копию main.cf а затем модифицируйте. Следующие строки добавлены/изменены в конфигурационном файле. Для дальнейших подробностей о параметрах обратитесь к официальному README и документу по настройки.

Читайте также:  Установка гидрофильтра на мангале

Письмам, предназначенным для домена example.tst, определено быть доставлено локально без каких-либо DNS запросов.

Предполагаем, что все письма, отправленные пользователю userA, должны быть доставлены также пользователю userB, для этого файл aliases изменён как показано ниже:

Обратите внимание: Синтекс ‘userA: userB’ определяет, что почта должна быть направлена только пользователю userB. Пользователь userA не будет получать копию письма.

SMTP: Запуск и обслуживание

postfix может быть запущен командой.

Лог-файл в /var/log/mail.log должен предоставить полезную информацию, если что-то пойдёт не так. Прослушивает ли почтовый сервер TCP порт 25 можно также проверить используя netstat.

Как видно из вывода, сервер прослушивает TCP порт 25 для входящих запросов соединений.

Установка и настройка POP/IMAP

Профиль службы: dovecot
Директория конфигурационных файлов /etc/dovecot
Скрипт /etc/init.d/dovecot
Файл журнала /var/log/mail.log
Номер порта TCP: 110 (POP3), 143 (IMAP), 993 (IMAPS), 995 (POP3S)

POP/IMAP: Установка dovecot

dovecot — это, без сомнений, лидирующее IMAP и POP серверное программное обеспечения в сообществе опен сорс. Очень просто установить и настроить dovecot. Для установки dovecot мы опять будем использовать apt-get .

Прямо из коробки dovecot может поддерживать POP3 и IMAP (обычный текст), а также зашифрованный POP3S и IMAPS (безопасный). По умолчанию dovecot создаёт и использует самоподписанный сертификат для SSL шифрования. Сертификаты могут быть созданы вручную или ипортированы позже, в зависимости от требований. В этом уроке будет использован сапомодписанный сертификат, сгенерированный dovecot.

На последних версиях больше не создаёт. Сертификаты нужно создавать вручную и вручную подключать их. Как это сделать, описано в этой инструкции.

POP/IMAP: Подготовка конфигурационных файлов

Следующие параметры изменяются как нужно.

Этого должно быть достаточно для запуска службы POP/IMAP в почтовом сервере.

POP/IMAP: Установка службы

Сейчас, когда dovecot установлен и настроен, он может быть запущен, используя следующую команду.

Вновь лог-файл (/var/log/mail.log) может предоставить важные зацепки, если что-то пойдёт не так. Узнать, запущен ли dovecot, можно при использовании netstat следующим образом.

Использование почтового сервера с пользовательской почтовой программой

Почтовый сервер теперь готов к использованию. Почтовая учётная запись может быть настроена с использованием вашего любимого почтового клиента на настольном компьютере, ноутбуке, планшете или телефоне. Можно настроить и webmail (почту с веб-интерфейсом) на сервере, но инструкция по webmail будет в следующих уроках. На данном этапе, почтовая программа Mozilla Thunderbird определила следующие настройки для моего сервера:

Крайне рекомендуется перейти и продолжить по этой инструкции для включения SSL шифрования.

Решение проблем с почтовым сервером

  • Лучший ваш друг – это лог-файл /var/log/mail.log. Любые зацепки, почему почта не работает, могут быть найдены здесь.
  • Убедитесь, что файервол должным образом настроен.
  • Убедитесь, что DNS сервер имеет должные записи.

Подытоживая, демонстрация в этом уроке, как уже было упомянуто, проходила в лабораторных условиях. Может быть развёрнут тестовый DNS сервер со всеми необходимыми записями, и пользователи будут между собой обмениваться письмами на одном и том же сервере, например, том же домене. Чтобы сделать ещё интереснее, можно развернуть множество почтовых серверов с различными доменами, для проверки работы связи между доменами, для этого должны присутствовать необходимые DNS записи.

Валидные DNS записи необходимы для живых почтовых серверов. Можно сделать тюнинг настроек postfix и dovecot в соответствии с потребностями.

Внимание: Для тех, кто хочет развернуть живой почтовый сервер, или любой почтовый сервер, который имеет доступ в Интернет, убедитесь, что ваш SMTP обезопасен. Обычно атаки на SMTP происходят из Интернета, так и от зловредных программ внутри локальной сети.

Эти программы нельзя установить на виртуальный хостинг. Полностью автономный почтовый сервер можно сделать только на виртуальном частном (выделенном) сервере, т. е. На VDS (VPS). Самые дешёвые облачные VDS (VPS) сервера! За 180 рублей/мес — эта статья, как следует из заголовка, расскажет вам о качественном и при этом самом дешёвом варианте виртуального частного сервера, которые при этом ещё и используют облачные технологии.

источник

Добавить комментарий

Adblock
detector