<?php require_once '../plugin/swift/lib/swift_required.php'; // Create the Transport $transport = Swift_SmtpTransport::newInstance('pod51003.outlook.com',587,'tls') ->setUsername('user@connect.polyu.hk') ->setPassword('pw') ; // Create the Mailer using your created Transport $mailer = Swift_Mailer::newInstance($transport); // Create a message $message = Swift_Message::newInstance('Wonderful Subject') ->setFrom(array('john@doe.com' => 'John Doe')) ->setTo(array('foodil@hotmail.com', 'foodil@yahoo.com.hk' => 'A name')) ->setBody('Here is the message itself') ; // Send the message $result = $mailer->send($message); printf("Sent %d messages\n", $result); ?>
Выяснилось:
Неустранимая ошибка: исключить исключение «Swift_TransportException» с сообщением «Ожидаемый код ответа 250, но получил код« 501 », с сообщением« 501 5.5.4 Недопустимое имя домена »' в C: \ xampp \ htdocs \ fyp \ plugin \ swift \ lib \ classes \ Swift \ Transport \ AbstractSmtpTransport.php: 422 Трассировки стека: # 0 C: \ xampp \ htdocs \ fyp \ plugin \ swift \ lib \ classes \ Swift \ Transport \ AbstractSmtpTransport.php (306): Swift_Transport_AbstractSmtpTransport -> _ assertResponseCode ('501 5.5.4 Inval ...', Array) # 1 C: \ xampp \ htdocs \ fyp \ plugin \ swift \ lib \ classes \ Swift \ Transport \ EsmtpTransport.php (224): Swift_Transport_AbstractSmtpTransport-> executeCommand ('HELO [:: 1] ??', Array, Array) # 2 C: \ xampp \ htdocs \ fyp \ plugin \ swift \ lib \ classes \ Swift \ Transport \ AbstractSmtpTransport.php (323): Swift_Transport_EsmtpTransport-> executeCommand ('HELO [:: 1] ??', Array) # 3 C: \ xampp \ htdocs \ fyp \ plugin \ swift \ lib \ classes \ Swift \ Transport \ EsmtpTransport.php (272): Swift_Transport_AbstractSmtpTransport -> _ doHeloCommand () # 4 C: \ xampp \ htdocs \ fyp \ plugin \ swift \ lib \ classes \ Swift \ Transport \ AbstractSmtpTransport.php (124) в C: \ xampp \ htdocs \ fyp \ plugin \ swift \ lib \ classes \ Swift \ Transport \ AbstractSmtpTransport.php в строке 422
На самом деле я сразу же следую учебнику, так что я вообще ничего не пропустил в своем коде? Информация сервера SMTP действительна.
Внешняя настройка SMTP:
Имя сервера: pod51003.outlook.com – вы также можете увидеть примечание ниже о том, как определить имя сервера
Порт: 587
Метод шифрования: TLS
после добавления строки: есть еще одна ошибка:
Предупреждение: stream_socket_enable_crypto () [streams.crypto]: этот поток не поддерживает SSL / криптографию в C: \ xampp \ htdocs \ fyp \ plugin \ swift \ lib \ classes \ Swift \ Transport \ StreamBuffer.php в строке 102 Неустранимая ошибка: исключить исключение «Swift_TransportException» с сообщением «Невозможно подключиться с помощью TLS-шифрования» в C: \ xampp \ htdocs \ fyp \ plugin \ swift \ lib \ classes \ Swift \ Transport \ EsmtpTransport.php: 283 Трассировки стека: # 0 C: \ xampp \ htdocs \ fyp \ plugin \ swift \ lib \ classes \ Swift \ Transport \ AbstractSmtpTransport.php (124): Swift_Transport_EsmtpTransport -> _ doHeloCommand () # 1 C: \ xampp \ htdocs \ fyp \ plugin \ swift \ lib \ classes \ Swift \ Mailer.php (79): Swift_Transport_AbstractSmtpTransport-> start () # 2 C: \ xampp \ htdocs \ fyp \ mail \ send.php (26): Swift_Mailer-> send (Object (Swift_Message)) # 3 {main}, брошенный в C: \ xampp \ htdocs \ fyp \ plugin \ swift \ lib \ classes \ Swift \ Transport \ EsmtpTransport.php в строке 283
Попробуйте добавить эту строку здесь, как показано:
// Create the Transport $transport = Swift_SmtpTransport::newInstance('pod51003.outlook.com',587,'tls') ->setUsername('user@connect.polyu.hk') ->setPassword('pw') ; // ADD THIS LINE $transport->setLocalDomain('[127.0.0.1]'); // Create the Mailer using your created Transport $mailer = Swift_Mailer::newInstance($transport);
Я предполагаю, что ваш SMTP-сервер не любит / не понимает IPv6, основываясь на ответе, который вы получаете в команде HELO.