Письма Swiftmailer попадают в папку СПАМ

$headers = "\r\n" . "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n";

$message = Swift_Message::newInstance()
                ->setSubject($subject)
                ->setFrom(array('[email protected]' => 'From Address'))
                ->setTo(array('[email protected]' => 'To Address'))
                ->setBody($message_plain_txt)
                ->addPart($message, 'text/html')
        ;
if ($file_name)
        {
            $message->attach(Swift_Attachment::fromPath($file_path));
        }

$result = $mailer->send($message);

В этом случае $filepath — это tmp-путь, который я использую, когда пользователь прикрепляет файлы из формы, а $file_name — это имя tmp-файла $_FILES['file']['name'].

В этой настройке я могу отправлять почту, но когда есть вложение, почта попадает в папку СПАМ. Если вложений нет, письмо попадает в папку «Входящие».

Эта настройка отлично работает, когда я загружаю файл из места и не отправляю вложение из формы.

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

Может кто-нибудь, пожалуйста, помогите мне с ошибкой, которую я здесь делаю.

Получил работу, изменив заголовки на

$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type: text/plain; charset=iso-8859-1\n";

person user434509    schedule 10.02.2012    source источник


Ответы (2)


Добавьте следующие заголовки, чтобы не попасть в папку со спамом:

$headers .= "Message-ID: <".time()." TheSystem@".$_SERVER['SERVER_NAME'].">\r\n";
$headers .= "X-Mailer: PHP v".phpversion()."\r\n";         
person Luc Laverdure    schedule 10.02.2012
comment
спасибо за вашу помощь... даже при добавлении вышеуказанного кода письма попадают в спам. - person user434509; 11.02.2012
comment
Тогда я не уверен, в чем проблема, это сработало для меня, это может зависеть от спам-фильтра сервера... трудно сказать, в чем проблема. - person Luc Laverdure; 11.02.2012
comment
@ user434509 какие дополнительные изменения вы внесли? - person Matthew Johnson; 18.03.2014

В версиях SwiftMailer 2015 года вы использовали встроенный метод getHeaders() для установки заголовков.

$headers =& $message->getHeaders();
$headers->addIdHeader('Message-ID', "[email protected]");
$headers->addTextHeader('MIME-Version', '1.0');
$headers->addTextHeader('X-Mailer', 'PHP v' . phpversion());
$headers->addParameterizedHeader('Content-type', 'text/html', ['charset' => 'utf-8']);
person Aleksandr Makov    schedule 25.03.2015
comment
Из документа вам не нужно возвращаться по ссылке ( =&). - person IROEGBU; 28.06.2017