Мое приложение в настоящее время отправляет электронные письма, но они не прошли проверку подлинности SMTP, поэтому электронные письма отправляются в спам. Есть ли способ добавить параметры SMTP без изменения основной конфигурации?

 /* Mail Sender */
            $mail = new \Zend_Mail('utf-8');
            $mail->setFrom("XXX@XXX.com");
            $mail->addTo($adminMail);
            $mail->setSubject('My Subject');
            $mail->setBodyHtml('email content');
            $content = file_get_contents($filePath);
            $attachment = new \Zend_Mime_Part($content);
            $attachment->type = 'image/png'; // attachment's mime type
            $attachment->disposition = \Zend_Mime::DISPOSITION_ATTACHMENT;
            $attachment->encoding = \Zend_Mime::ENCODING_BASE64;
            $attachment->filename = 'image_' . $customerId . '.png';
            $mail->addAttachment($attachment);
            $mail->send();
0
gazZz 14 Апр 2020 в 18:06

1 ответ

Лучший ответ

Попробуйте изменить свой код следующим образом:

$mail = new \Zend_Mail('utf-8');
$mail->setFrom("XXX@XXX.com");
$mail->addTo($adminMail);
$mail->setSubject('My Subject');
$mail->setBodyHtml('email content');
$content = file_get_contents($filePath);
$attachment = new \Zend_Mime_Part($content);
$attachment->type = 'image/png'; // attachment's mime type
$attachment->disposition = \Zend_Mime::DISPOSITION_ATTACHMENT;
$attachment->encoding = \Zend_Mime::ENCODING_BASE64;
$attachment->filename = 'image_' . $customerId . '.png';
$mail->addAttachment($attachment);

// create mail transport
$transport = new \Zend_Mail_Transport_Smtp(
    'smtp.yourserver.com',
    [
        'auth' => 'login',
        'port' => 'yoursmtpport',
        'username' => 'yourusername',
        'password' => 'yourpassword',
    ]
);

$mail->send($transport);
0
Daniel Gadawski 14 Апр 2020 в 19:41