Отправка писем php-скриптом через SMTP

Рейтинг: 2Ответов: 1Опубликовано: 07.02.2015

Товарищи гуру бек-энда, к вам вопрос.
Битый час бьюсь с SMTP-отправкой писем с сайта. Был у меня рабочий скрипт, сейчас вроде работает, но письма отправляет очень редко, раз в 10 минут, если отправляешь чаще - просто ничего не приходит.

gmail вообще не хочет, гад, работать. ukr.net отправляет, но не принимает. Яндекс принимает, но не отправляет.

Может ли мой хостер принять меня за спамера и глушить поток? Если есть 100% рабочий PHP-скрипт отправки почты через SMTP c SSL - буду благодарен, если поделитесь.

Ответы

▲ 1

Надеюсь, на вашем хостинге есть пхп без ограничений, тогда можно воспользоваться штатным sendmail-ом через сокеты:

$from = 'from@email.com';   
$subject ='[some] test';  
$to = 'to@email.com';  
$message = 'some text message';

        $connect = fsockopen ('127.0.0.1', 25, $errno, $errstr, 30);
        if(!$connect){
            echo json_encode($errno);
        } else {
            fputs($connect, "HELO localhost\r\n");
            fputs($connect, "MAIL FROM: $from\n");
            fputs($connect, "RCPT TO: to@email.com\n"); // если нужно н-колько адресатов, то нужно сделать н-колько таких строк, по одному адресу
            fputs($connect, "DATA\r\n");                              
            fputs($connect, "Content-Type: text/plain; charset=UTF-8");
            fputs($connect, "MIME-Version: 1.0\nContent-Transfer-Encoding: 7bit\n");
            fputs($connect, "To: $to\r\n");                                
            fputs($connect, "Subject: =?utf-8?b?".base64_encode($subject)."?=\r\n");  
            fputs($connect, $message." \r\n");
            fputs($connect, ".\r\n");
            fputs($connect, "RSET\r\n"); 
        }
        fclose($connect);