@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);
  • Вопрос задан
  • 46 просмотров
Пригласить эксперта
Ответы на вопрос 4
  • slo_nik
    @slo_nik
    Добрый вечер.
    В 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
    @402d
    Программирую с 1989 года
    v=spf1 redirect=_spf.mail.ru
    а если посмотрим дальше, то увидим, что по правилам обработки писем,
    тому, что вы послали прямая дорога в dev/nul

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

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

Войти через TM ID
Похожие вопросы