@Nikola24

Не отсылает сообщение на почту при отправители, почему?

Очень странный баг, если указывать отправителя(FROM) c почтового ящика mail.ru, оно его не отсылает.
Сам код отправки, я так понимаю это стандартный для yii.
public function sendMail($from, $to, $text, $subject = null, $copy = null)
    {
        $result = array();
        
        if (!preg_match("/^([a-z0-9_\.-]+)@([a-z0-9_\.-]+)\.([a-z\.]{2,6})$/",$from)) {
            return 'Wrong format mail from';
        } elseif (!preg_match("/^([a-z0-9_\.-]+)@([a-z0-9_\.-]+)\.([a-z\.]{2,6})$/",$to)) {
            return 'Wrong format mail to';
        }
        
        $subject = '=?UTF-8?B?'.base64_encode($subject).'?=';
		$headers = "From: $from\r\n";
        
        if ($copy) {
            if (!preg_match("/^([a-z0-9_\.-]+)@([a-z0-9_\.-]+)\.([a-z\.]{2,6})$/",$copy)) {
                return 'Wrong format mail reply';
            } else {
                $headers .= "Bcc: $copy\r\n";
            }
        }
        
        $headers .= "MIME-Version: 1.0\r\n";
        $headers .= "Content-Type: text/html; charset=utf-8\r\n";
        $headers .= "Content-Transfer-Encoding: base64\r\n"; 
        $text = base64_encode($text);
        
        return mail($to, $subject, $text, $headers);
  • Вопрос задан
  • 80 просмотров
Пригласить эксперта
Ответы на вопрос 4
slo_nik
@slo_nik Куратор тега Yii
Добрый вечер.
В yii2 существует специальный класс Mailer, который и занимается отправкой почты.
Изучите этот класс, а свой код выкиньте.
Ответ написан
rabbit418
@rabbit418
23 yo Designer from Ukraine
Для валидации email есть функция filter_var.

<?php
$email = "john.doe@example.com";

if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
  echo("$email is a valid email address");
} else {
  echo("$email is not a valid email address");
}
?>
Ответ написан
Комментировать
@402d
начинал с бейсика на УКНЦ в 1988
v=spf1 redirect=_spf.mail.ru
а если посмотрим дальше, то увидим, что по правилам обработки писем,
тому, что вы послали прямая дорога в dev/nul

Единственный способ отправить от лица you@mail.ru
это через их smtp сервер представив логин/пароль
Ответ написан
Комментировать
dmtrbskkv
@dmtrbskkv
Кодим и декодим, а иногда кино смотрим
Скорее всего не так, но пусть будет эта инфа: маил не принимает письма от своих же ящиков, но с другого сервера. Т.е. если письмо было отправлено с www.site.com отправителем po4ta@mail.ru на сайт mail.ru, то письмо вряд дойдет, ибо маил ругаться будет
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы