2016-07-27 3 views
2

Я пытаюсь отправить электронное письмо с помощью PHP Pear. Она работает, когда я отправить электронную почту с помощью Gmail с этой настройкой:Отправить письмо с помощью Outlook через PHP Pear

$smtp = Mail::factory('smtp', array(
    'host' => 'ssl://smtp.gmail.com', 
    'port' => '465', 
    'auth' => true, 
    'username' => '[email protected]', 
    'password' => 'password!2016' 
)); 

Но прежде чем я сделать эту работу, я должен «разрешить менее безопасные приложения», чтобы получить доступ к своей учетной записи, которую вы можете прочитать here о том, как это сделать ,

Я пытался использовать учетную запись Outlook, с этой настройкой:

$smtp = Mail::factory('smtp', array(
    'host' => 'tls://smtp.office365.com', 
    'port' => '587', 
    'auth' => true, 
    'username' => '[email protected]', 
    'password' => 'greatPasswordComesWithGreatResponsibilities' 
)); 

, но я получаю эту ошибку:

Failed to connect to ssl://smtp.office365.com:587 [SMTP: Failed to connect socket: fsockopen(): unable to connect to ssl://smtp.office365.com:587 (Unknown error) (code: -1, response:)]

Я проверил official article по Microsoft о своих настройках SMTP. Поэтому я думал, что у меня есть правильные настройки, но он не работает.

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

ответ

-1

Это может не помочь, но название вашего сообщения только что упомянутой учетной записи Outlook, но параметры ссылки и smtp относятся к учетным записям Office365 для бизнеса. Я не могу пролить свет на бизнес-аккаунт, но если у вас действительно есть учетная запись Outlook.com, настройки разные. Кроме того, есть опция в учетной записи, которую вы должны изменить, чтобы включить доступ к pop/smtp, как и в gmail.

Официальная статья Microsoft является: https://support.office.com/en-us/article/Add-your-Outlook-com-account-to-another-mail-app-73f3b178-0009-41ae-aab1-87b80fa94970?ui=en-US&rs=en-US&ad=US&fromAR=1

Но резюме являются сервер SMTP является smtp-mail.outlook.com и включить POP/SMTP в вашем Outlook, счета искать варианты> Управление аккаунта> Подключайте устройства и приложения к POP.

Update: Если вы на самом деле с помощью бизнес-аккаунт, вы должны проверить этот пост, который утверждает, что он работает: https://stackoverflow.com/a/26004690/2891120

Ключевой элемент в его коде он не имеет «TLS:// "перед именем хоста. У меня есть учетная запись пользовательского Outlook и вы получаете аналогичный сбой сокета с префиксом tls: //. Если я удалю этот префикс, я получу гораздо дальше (установите debug = true на фабрике), но позже выйдем с ошибкой auth. Используя 5.2.16 PHPMailer вместо этого, я успешно отправляю почту, но заголовки оставляют меня обеспокоенными темпами отклонения от спама (ни один DKIM, SPF не был софтфайлом для моего объекта AWS, предупреждения о -f и т. Д.). И это письмо попало в папку нежелательной почты моего другого получателя теста @ outlook.com. Но я отвлекся.

Смежные вопросы