LINUX.ORG.RU

Сервер исходящей почты для php mail()

 , ,


0

1

Доброго утра. Не знал, как более точно написать заголовок, но дальше разжую. Есть сервер, работает, но без поддержки функции mail() в php. Есть почта для домена от яндекса. Работает, отлично. Встал теперь вопрос, как научить мой web-сервер отправлять письма через mail()? Какое решение потребует минимальных усилий? Я так понял, нужно ставить sendmail или postfix? Что вы скажете и куда направите?

Сервер пока что на ArchLinux (да, другую ось советовали, но пока нет времени на переезд). Благодарю заранее!



Последнее исправление: cetjs2 (всего исправлений: 2)
Ответ на: комментарий от Frost

Видел море статей по настройке, но везде идёт в связке с каким-либо другим расширением. Мне достаточно будет только postfix поставить для работы?

n1ko
() автор топика
Ответ на: комментарий от Frost

Возможно и я разверну таким образом, чтобы не зависеть от яндекса, но у меня тогда возникает море вопросов. С Вами возможно каким-нибудь образом связаться? Не затруднит ли Вас мне помочь, например в ВК или скайпе?

n1ko
() автор топика

Есть почта для домена от яндекса

Если уже что-то есть настроенное на стороне, посмотрите в сторону SMTP.

Вот, даже статья Вам, из ВК

http://vk-book.ru/otpravka-pisem-cherez-smtp-s-avtorizaciej-po-protokolu-ssl-...

int13h ★★★★★
()
Последнее исправление: int13h (всего исправлений: 1)
Ответ на: комментарий от n1ko

без расширений, отправку и на получение настраивал (потом выключил последнее за ненадобностью)

Frost ★★★
()
// пример использования
require_once "SendMailSmtpClass.php"; // подключаем класс
  
$mailSMTP = new SendMailSmtpClass('zhenikipatov@yandex.ru', '****', 'ssl://smtp.yandex.ru', 'Evgeniy', 465);
// $mailSMTP = new SendMailSmtpClass('логин', 'пароль', 'хост', 'имя отправителя');
  
// заголовок письма
$headers= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=utf-8\r\n"; // кодировка письма
$headers .= "From: Evgeniy <admin@vk-book.ru>\r\n"; // от кого письмо
$result =  $mailSMTP->send('zhenikipatov@yandex.ru', 'Тема письма', 'Текст письма', $headers); // отправляем письмо
// $result =  $mailSMTP->send('Кому письмо', 'Тема письма', 'Текст письма', 'Заголовки письма');
if($result === true){
    echo "Письмо успешно отправлено";
}else{
    echo "Письмо не отправлено. Ошибка: " . $result;
}
int13h ★★★★★
()
Ответ на: комментарий от int13h

За статью благодарю. Это конечно замечательно для новых проектов и задач, но необходима поддержка так же и встроенной mail() функции в старых проектах. Перекапывать каждый, если честно, не хочется, хоть везде использую класс, который легко будет поправить в одном месте. Если уж забуксую с постфиксом, обращусь к вашей статье!)

n1ko
() автор топика
Ответ на: комментарий от n1ko

Я уже и сам не помню как настраивал его:) Были связки Debian + голый php + postfix. В прошлом году перешел на Slackware + Zend + postfix, старый конфиг не заработал, уже даже не помню в чём была проблема. Могу конфигами позже поделится, времени мало.

Frost ★★★
()
Ответ на: комментарий от int13h

Ой, глянул я туда и туда да понял, что время дороже :-D Воспользуюсь пока предложенным Вами классом. Быстрее будет старые классы подлатать. Времяце будет, попытаю сервер, а пока без.

Благодарю всех. Буду рад дополнительным ответам и советам, но тема решена. Инфы, что вы уже дали, вполне хватит для начала :-)

n1ko
() автор топика

А разве нельзя sendmail настроить так, чтобы он использовал сторонний smtp сервер? Эта функция вроде как его и дёргает.

Kilte ★★★★★
()
Ответ на: комментарий от Kilte

все можно, но ТС-у настраивать sendmail, к примеру, будет проблематично

int13h ★★★★★
()

Функией mail вызывается локальный MTA, который отправляет письмо сообразно его возможностям. Тупо даёшь локальному МТА ящик на яндексе в качестве релея и всё.
/etc/postfix/main.cf

relayhost = адрес
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl/sasl_passwd

/etc/postfix/sasl/sasl_passwd

адрес лог@ин:пароль

targitaj ★★★★★
()
Последнее исправление: targitaj (всего исправлений: 2)

Всё что нужно - это установить postfix и настроить sendmail_path в php.ini. В принципе этого достаточно для корректной работы mail().

lucentcode ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.