ZEND 使用 SMTP 身份验证发送

ZEND send with SMTP authentication

我的应用程序当前正在发送电子邮件,但它们未经过 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();

尝试像这样修改您的代码:

$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);