Невозможно отправить почту с Office365 SMTP с почтовой программой PHP, когда хост и с адреса электронной почты отличаются - PullRequest
0 голосов
/ 06 марта 2019

Я использую последнюю версию PHPMailer для отправки электронной почты через Office365 SMTP.

Требуется приложить подпись к электронной почте office365 при отправке почты через приложение.Для этого мы создали общий почтовый ящик «smtp@myhosting.com» и добавили в него все электронные письма пользователей, а также установили все учетные данные.

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

Ниже приведен мой код:

 <?php $mail = new PHPMailer(true);   
try {
    //Server settings
    $mail->SMTPDebug = 2;                                 // Enable verbose debug output
    $mail->isSMTP();                                      // Set mailer to use SMTP
    $mail->Host = 'smtp.office365.com';  // Specify main and backup SMTP servers
    $mail->SMTPAuth = true;                               // Enable SMTP authentication
    $mail->Username = 'smtp@myhosting.com';                 // SMTP username
    $mail->Password = 'XXXXXX';                           // SMTP password
    $mail->SMTPSecure = 'tls';                            // Enable TLS encryption, `ssl` also accepted
    $mail->Port = 587;                                    // TCP port to connect to
    //Recipients
    $mail->setFrom('user1@myhosting.com', 'User1');
    $mail->addAddress('sanjayp@gmail.com', 'sanjay');     // Add a recipient
    //$mail->addAddress('ellen@example.com');               // Name is optional
    $mail->addReplyTo('info@myhosting.com', 'Information');
//    $mail->addCC('cc@example.com');
//    $mail->addBCC('bcc@example.com');
    $mail->SMTPOptions = array(
        'ssl' => array(
            'verify_peer' => false,
            'verify_peer_name' => false,
            'allow_self_signed' => true
        )
    );
    //Attachments
    //   $mail->addAttachment('/var/tmp/file.tar.gz');         // Add attachments
    //   $mail->addAttachment('/tmp/image.jpg', 'new.jpg');    // Optional name
    //Content
    $mail->isHTML(true);                                  // Set email format to HTML
    $mail->Subject = 'Here is the subject';
    $mail->Body = 'This is the HTML message body <b>in bold!</b>';
    $mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

    $mail->send();
    echo 'Message has been sent';
} catch (Exception $e) {
    echo 'Message could not be sent. Mailer Error: ', $mail->ErrorInfo;
} ?>

Но я получаю следующие ошибки.

SMTP Error: data not accepted.SMTP server error: DATA END command failed Detail: STOREDRV.Submission.Exception:SendAsDeniedException.MapiExceptionSendAsDenied; Failed to process message due to a permanent exception with message Cannot submit message. 16.55847:77100000, 17.43559:0000000094000000000000000100000000000000, 20.52176:140F96861000101048050000, 20.50032:140F9686801710104D050000, 0.35180:0A00B480, 255.23226:52050000, 255.27962:0A000000, 255.27962:0E000000, 255.31418:0A000000, 16.55847:E4000000, 17.43559:00000000A0010000000000001D00000000000000, 20.52176:140F9686100010100 SMTP code: 554 Additional SMTP info: 5.2.0

Любые предложения будутбудь великим.

...