Отправляем почту через яндекс

в продолжении http://serov.eu/?p=45

msmtp действительно помог без очень сложных махинаций настроить сервер на отправку почты через яндекс.

ставим программку

yum install msmtp

в php.ini в самом конце файла пишем

sendmail_path = msmtp -t -i

у пользователя создаем файл

nano .msmtprc

с содержанием

 

account default
logfile /home/bitrix/.msmtp.log
host smtp.yandex.ru
port 587
from noreply@server.ru
keepbcc on
auth on
user noreply@server.ru
password <password>
tls on
tls_starttls on
tls_certcheck off

ставим правильные права, без этого ругается

chmod 0600 .msmtprc

и рестартуем httpd

service httpd restart

 

проверка:

php -r "mail('you-mail@gmail.com', 'Test', 'Test');"

Sendmail-заглушка для Linux

Оригинал статьи тут — http://habrahabr.ru/post/49665/

Заглушка для почты на сервере разработки:

#!/bin/sh 
prefix="/var/mail/sendmail/new"
numPath="/var/mail/sendmail"

if [ ! -f $numPath/num ]; then 
echo "0" > $numPath/num 
fi 
num=`cat $numPath/num` 
num=$(($num + 1)) 
echo $num > $numPath/num 

name="$prefix/letter_$num.txt"
while read line 
do 
echo $line >> $name
done 
chmod 777 $name
/bin/true

Скрипт сохраняем в папку /usr/bin под любым угодным вам именем и делаем исполняемым (sudo chmod +x). Я использовал fake_sendmail.sh.

Теперь все исходящие письма будут складываться в /var/mail/sendmail. Так же необходимо выставить для папки права на запись. (chmod 777 -R /var/mail/sendmail).

Примечание:
Для сбора писем почтовиком (о чем ниже), нужно в этой папке создать следующую структуру папок:
/var/mail/sendmail/
— cur
— new
— tmp
И дать права на запись.

Настройка PHP.
У меня стоит Кубунта, так что все пути относительно нее. Итак, находим в папке /etc/php5/apache2 файл php.ini и меняем в нем путь к sendmail на:

sendmail_path = /usr/bin/fake_sendmail.sh.