Mail_Mime с аттачем

sunyang

Новичок
Привет, люди добрые.
Поиском пользовался, ответа на свой вопрос не нашел.
Решил использовать Mail_Mime для оправки письма. Пробовал отправку на yandex и mail почту.
Если отправлять письмо без аттача, то письмо приходит и туда и туда нормально.
Если отправлять с аттачем, то на яндекс приходит письмо пустое, без текста и аттача, а майл реджектит с ошибкой 550 spam message rejected.

Пользуюсь вот такой функцией:

Код:
public static function mMail($to, $subject, $message, $file = false, $type='html')
    {
        include 'Mail.php' ;
        include 'Mail/mime.php';
       
        $CRLF = '\n';
        $from = '[email protected]';
       
        $mime = new Mail_mime();
       
        if($type == 'html'){
            $mime->setHTMLBody($message);
        }
        else{
            $mime->setTXTBody($message);
        }

        if($file && file_exists($file))
        {
            $finfo = new finfo(FILEINFO_MIME);
            $ftype = $finfo->file($file);
            if($ftype){
                $ftype = explode('; ', $ftype)[0];
                $mime->addAttachment($file, $ftype);
            }
        }
        $body = $mime->get(array(
            'text_encoding' => '8bit',
            'text_charset'  => 'utf-8',
            'html_charset'  => 'utf-8',
        ));
       
        $headers = $mime->headers(array(
            'From'        => $from,
            'Subject'    => "=?utf-8?b?".base64_encode($subject)."?=",
            'X-Mailer'    => 'PHP mailer',
            'X-Sender'    => $from,   
        ));

        $mail =& Mail::factory('mail');
        $status = $mail->send($to, $headers, $message);
       
        if (PEAR::isError($status)) {
            p("mMail::ERROR");
            return false;
        }
        else{
            return true;
        }
    }
запускаю:
Код:
$res = \Util::mMail($to, 'проверка отправки почты Mail_Mime', $msg, $file, 'html');
в итоге получаются следующие заголовки и тело письма:

заголовки:
Код:
Array
(
    [MIME-Version] => 1.0
    [Content-Type] => multipart/mixed;
boundary="=_53f210bb68ab97de6f81d289cfdea15c"
    [From] => [email protected]
    [Subject] => =?utf-8?b?0L/RgNC+0LLQtdGA0LrQsCDQvtGC0L/RgNCw0LLQutC4INC/0L7Rh9GC0YsgTWFpbF9NaW1l?=
    [X-Mailer] => PHP mailer
    [X-Sender] => [email protected]
)
тело:
Код:
--=_53f210bb68ab97de6f81d289cfdea15c
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html; charset=utf-8

HTML version of email
=
=D0=9F=D1=80=D0=B8=D0=B2=D0=B5=D1=82, =D0=9C=D0=B8=D1=80!! =D0=A2=D0=B5=D0=
=BA=D1=81=D1=82 =D0=BD=D0=B0 =D1=80=D1=83=D1=81=D1=81=D0=BA=D0=BE=D0=BC
--=_53f210bb68ab97de6f81d289cfdea15c
Content-Transfer-Encoding: base64
Content-Type: image/jpeg;
name=10_27.jpg
Content-Disposition: attachment;
filename=10_27.jpg;
size=1472

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
--=_53f210bb68ab97de6f81d289cfdea15c--
Картинка в теле есть вроде как. Майл реджектит видимо из-за нехватки какого-нибудь заголовка, но вот почему письмо приходит пустое, не пойму.
 

ksnk

прохожий
Открой мейлер. Желательно Outlook. Пошли по тому же адресу такое же письмо, желательно, от того же адресата. Если письмо точно так же заспамилось - адрес отправки или картинка являются спамом. если незаспамилось - открой "текст письма с заголовками" и сравни посекционно.
 
Последнее редактирование:

AnrDaemon

Продвинутый новичок
Если message body копипастили, то content-type первой секции не соответствует содержимому, а заголовки второй секции битые.
 

sunyang

Новичок
Если message body копипастили, то content-type первой секции не соответствует содержимому, а заголовки второй секции битые.
Нет, не копипастил, все вывел как есть. Да, заметил, заголовки битые. Позже еще возникли проблемы со знаком = в письмах, видимо из-за присутствия знака равно в boundary (--=_53f210bb68ab97de6f81d289cfdea15c).
В общем отказался от этого PEAR расширения в пользу обычной функции mail и правильно написанных заголовков.
 
Сверху