Как настроить php ini smtp

IgorKa — Информационный ресурс

Немного обо всем и все о немногом, или практический опыт системного администратора.

Октябрь 2013
Пн Вт Ср Чт Пт Сб Вс
« Сен Ноя »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31

Настройка почты ssmtp для PHP mail()

Пришлось на днях настраивать почту на тестовом веб-сервере. Нужно это для того, чтобы наше серверное приложение могло отправлять пользователям уведомления на почту. Выделенный настроенный почтовый сервер имеется, поэтому нужно было всего-навсего настроить какой-нибудь MTA на пересылку почты. Так как с админством уже завязал (да и ранее почту под линукс настраивать не приходилось), то пришлось найти несколько готовых варинатов из которых слепил свой. Собственно здесь закладка для себя (вдруг когда-нибудь пригодится).

Сервер на котором выполнялась настройка: Ubuntu 12.04 LTS.

smtp.remotemailserver.com — удаленный почтовый сервер.
dev.server.com — доменное имя веб-сервера.

По рекомендациям в интеренете решил установить там простенький МТА — ssmtp:

$ sudo apt-get install ssmtp

Затем нужно отредактировать конфигурационные файлы ssmtp:

sudo nano /etc/ssmtp/ssmtp.conf

Не разбирался зачем ключ -t (в мане написано, что он игнорируется ssmtp).

Делаем рестарт апача:

$ sudo service apache2 restart

Код проверки (PHP)

‘ . «\r\n» .
‘Reply-To: support@server.com’ . «\r\n» .
‘MIME-Version: 1.0’ . «\r\n» .
‘Content-Type: text/html; charset=utf-8’ . «\r\n» .
‘Content-Transfer-Encoding: quoted-printable’;

mail($to, $subject, $message, $headers);
?>

То есть создаем файл с расширением PHP, например, testmail.php запускаем его из командной строки:

Но из нашего веб приложения письма уходить отказались. 🙁 Смотрел логи, апача, почты, но все свелось к тому, что пришлось все удалить и настроить postfix. С ним все заработало как нужно. По настройке Postfix также нужно будет сделать себе закладочку на всякий случай…

Спасибо за то что поделились ссылкой!

Теги: Почта
Рубрика: Закладки | Отзывы (RSS)

Статьи и новости схожей тематики:

Один комментарий

Дмитрий:

Многие сейчас настраивают отправку писем на gmail и не могут найти настройки для файлов php.ini и sendmail.ini
Поделюсь своими настройками, надеюсь помогу таким же “чайникам”, коим сам и являюсь 🙂

В файле php.ini раскомментированы строки:
sendmail_path = C:\xampp\sendmail\sendmail.exe
mail.add_x_header=On
(остальные с префиксом ; перед строкой)

В файле sendmail.ini:
smtp_server=smtp.gmail.com
smtp_port=465
smtp_ssl=auto
error_logfile=error.log
debug_logfile=debug.log
auth_username=your_mail@gmail.com
auth_password=your_password
pop3_server=
pop3_username=
pop3_password=
force_sender=your_mail@gmail.com
force_recipient=
hostname=gmail.com

По состоянию на 14.03.2017 — всё работает
ОС Windows 7
Модуль Apache

Источник

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini .

Конфигурационные опции отправки писем

Имя По умолчанию Меняемо Список изменений
mail.add_x_header «0» PHP_INI_PERDIR Доступна с PHP 5.3.0.
mail.log NULL PHP_INI_PERDIR Доступна с PHP 5.3.0. (PHP_INI_SYSTEM|PHP_INI_PERDIR)
mail.force_extra_parameters NULL PHP_INI_PERDIR Доступна с PHP 5.0.0. (PHP_INI_SYSTEM|PHP_INI_PERDIR)
SMTP «localhost» PHP_INI_ALL
smtp_port «25» PHP_INI_ALL Доступна с PHP 4.3.0.
sendmail_from NULL PHP_INI_ALL
sendmail_path «/usr/sbin/sendmail -t -i» PHP_INI_SYSTEM

Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

Добавляет заголовок X-PHP-Originating-Script, который будет содержать UID скрипта и имя файла.

Путь к лог-файлу, в который будут записываться все вызовы функции mail() . Записи в логе содержат полный путь до скрипта, номер строки, адрес получателя To и заголовки.

Принудительно добавляет указанные параметры в дополнительные параметры программе sendmail. Эти параметры всегда будут заменять значение пятого параметра функции mail() , даже в безопасном режиме.

Используются только в Windows: домен или IP-адрес SMTP-сервера, к которому будет обращаться PHP при отправке почты функцией mail() .

Использутся только в Windows: порт SMTP-сервера, к которому будет обращаться PHP при отправке почты функцией mail() ; по умолчанию 25. Доступен с PHP 4.3.0.

Адрес, который будет использоваться в заголовке «From:» в письмах, посылаемых PHP в Windows. Эта директива также устанавливает заголовок «Return-Path:».

Путь до программы sendmail, обычно /usr/sbin/sendmail или /usr/lib/sendmail . configure пытается найти sendmail автоматически и установить значение по умолчанию самостоятельно, но если это не удалось, вы можете установить путь здесь.

Системы, не использующие sendmail, должны установить эту директиву в путь до обертки/заменителя sendmail. Например, пользователи » Qmail обычно устанавливают значение /var/qmail/bin/sendmail или /var/qmail/bin/qmail-inject .

qmail-inject не требует дополнительных опций для отправки писем.

Эта директива также работает и в Windows. Если она установлена, smtp , smtp_port и sendmail_from будут проигнорированы и выполнится указанная программа.

Источник

PHP mail под Windows

В этой статье я хочу рассказать об отправке почты из php скриптов под Windows.

Америку я, конечно, не открою, но надеюсь, что кому-то эта статья будет полезна или просто сэкономит время.

С точки зрения php программиста отправка почты выполняется с помощью стандартной функции mail() . И вот тут у многих начинающих разработчиков возникает проблема. Скрипт, прекрасно работающий на сервере хостера, выдает ошибки на локальном компьютере.

Обычно эти ошибки имеют примерно такое описание:
Warning: mail() [function.mail]: Failed to connect to mailserver at «localhost» port 25, verify your «SMTP» and «smtp_port» setting in php.ini or use ini_set() in E:\www\simplemail\mailer.php on line .

Дело в том, что функция mail сама по себе почту не отправляет, она просто вызывает программу sendmail, которая в дистрибутив web сервера и php интерпретатора не входит (и не должна).

Sendmail, в свою очередь, для отправки почты использует SMTP сервер.

Таким образом, чтобы php скрипт мог отправлять почту нужно установить и настроить sendmail и SMTP сервер.

Версию sendmail для Windows можно скачать здесь.

Установка и настройка выполняется в три этапа.

1) Распаковываем архив на тот же диск, где установлен php. Например, я создал папку C:\wamp\sendmail.

2) Вносим изменения в файл php.ini:

[mail function]
SMTP =
sendmail_from =
sendmail_path = «C:\wamp\sendmail\sendmail.exe -t»

Как видите, нужно только указать путь к sendmail чтобы php мог ее найти.

3) Настраиваем sendmail. Все настройки находятся в файле sendmail.ini (расположен в папке с sendmail).

Но перед тем как приступать к настройке пару слов об SMTP сервере. Вам совсем не обязательно устанавливать сервер на вашем компьютере. Многие почтовые сервисы предоставляют бесплатный доступ к своим серверам.

Ниже я покажу пример настройки sendmail для работы с SMTP сервером mail.ru, но, естественно, вы выбрать любой другой.

Итак, открываем sendmail.ini и устанавливаем следующие параметры:

smtp_server=smtp.mail.ru ; адрес SMTP сервера
smtp_port=25 ; порт SMTP сервера

default_domain=mail.ru ; домен по-умолчанию

error_logfile=error.log ; файл в который будет записываться лог ошибок

debug_logfile=debug.log ; очень полезная на этапе отладки опция. Протоколируются все операции, которые выполняет sendmail

auth_username=account_name@mail.ru ; имя вашего аккаунта
auth_password=account_password ; ваш пароль

; следующие три опции используются если перед авторизацией на SMTP сервере требуется авторизация на POP3 сервере
pop3_server=pop.mail.ru
pop3_username=account_name@mail.ru
pop3_password=account_password

; параметр для команды MAIL FROM
force_sender=account_name@mail.ru

Теперь не забудьте перезапустить web сервер, чтобы изменения вступили в силу.

Чтобы протестировать работу почты напишем простенький скрипт:

Он создает форму с тремя полями для ввода адреса, темы и содержания письма. Нажатие на кнопку «Отправить» отправит запрос этому же скрипту (строка 21).

Если данные введены, то будет вызвана функция mail (строка 13), которая и отправит письмо. В случае успешной отправки функция возвращает true, в противном случае — false.

Как видите, ничего сложного в настойке почты нет.

Источник

Как настроить php ini smtp

setting return path:

Return-path header does not work because it is not part of smtp.

on *nix -f may be set on the mail command
alternatively
some MTAs accept mbox-style «From » header on the first header line
note: no colon after «From» , must be the first header line
or you may be able to re-configure you MTA to interpret return-path headers

-f is the most reliable method but it may mean that you can’t set any other command-line option due to shell escaping problems.

also note that email formatting requirements differ between windows and everything else. sendmail expects only \n line-endings

For linux you can over-ride the default «From» for the outgoing emails by including in php.ini this line:

sendmail_path = «/usr/sbin/sendmail -t -i -f fromMe@blah.com»

The path should work for most linux installations.

On Darwin OS such as OSX (current one: 10.8.3) you need to add a specific command and option to the sendmail_path constant if you have downloaded and installed a mamp with a stack.

Indeed you can see the required libraries for PHP, Apache, MySQL in «common/lib» folder. The problem is when you run an external command using these libraries, for example «sendmail». It could be a problem if it gets the stack libraries and not the system ones (different versions, etc).

The «env -i» command clean the Stack environment variables and run «sendmail» with the system libraries.

Источник

PHP — отправка электронной почты через PHP

Дата публикации: 2017-10-19

От автора: отправка почты через PHP настраивается с помощью файла php.ini. Откройте файл php.ini, который находится в каталоге / etc/, и найдите раздел с заголовком [mail function].

Пользователям Windows нужно предоставить в этом разделе две директивы. Первая называется SMTP, она задает адрес SMTP-сервера. Вторая называется sendmail_from, она определяет ваш адрес электронной почты. Настройки для Windows должны выглядеть примерно так:

Пользователи Linux должны указать PHP местоположение своего приложения sendmail. Путь и любые требуемые ключи должны указываться в директиве sendmail_path. Настройки для Linux должны выглядеть примерно так:

Бесплатный курс по PHP программированию

Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

Теперь все готово.

Отправка обычного текстового сообщения

PHP использует функцию mail() для отправки электронной почты. Для этой функции необходимы три обязательных аргумента, в которых указывают адрес электронной почты получателя, тема электронного письма и само письмо, кроме того, имеются два других необязательных параметра.

Ниже приводится описание каждого аргумента.

Бесплатный курс по PHP программированию

Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

После вызова функции mail, она попытается отправить электронное письмо, после этого она возвращает значение true, если письмо отправлено успешно, или false, если письмо не было отправлено. В качестве первого аргумента функции mail() могут быть указаны несколько получателей, их адреса указываются списком через запятую.

Отправка HTML-письма

Когда вы отправляете текстовое сообщение с использованием PHP, то весь контент будет рассматриваться как простой текст. Даже если вы будете включать в текстовое сообщение HTML-теги, сообщение будет отображаться как простой текст, а HTML-теги не будут отформатированы в соответствии с синтаксисом HTML. Но PHP предоставляет возможность отправлять HTML-письма в формате HTML. При отправке электронных писем вы можете указать Mime-версию, тип контента и набор символов.

Источник

Читайте также:  Не работает динамик при разговоре по телефону xiaomi
Оцените статью