2015-04-23 4 views
0

Мне нужно отправить электронное письмо с помощью php. вот мой код:Отправить письмо от Hotmail с помощью php

   $to= "[email protected]"; 
       $subject = "demande d'intervention"; 
       $message = "<h1>Demande d'intervention<h1> 
       Bonjour,<br> 
       il y a une urgence et on souhaite votre intervention docteur <br>"; 
       $headers = 'From: DRIF <[email protected]>' . "\r\n" . 
        'Reply-To: [email protected]' . "\r\n" . 
        'Content-Type: text/html; charset="iso-8859-1"' . "\r\n" . 
        'X-Mailer: PHP/' . phpversion(); 

       mail($to, $subject, $message, $headers); 

это, как я настроил файл php.ini:

[mail function] 

; For Win32 only. 
; http://php.net/smtp 
SMTP = "smtp.live.com" 
; http://php.net/smtp-port 
smtp_port = 587 
username="[email protected]" 
password="blablabla" 
; For Win32 only. 
; http://php.net/sendmail-from 
sendmail_from = "[email protected]" 

Я получаю сообщение об ошибке:

SMTP server response: 550 5.7.3 Requested action aborted; user not authenticated 

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

Не могли бы вы помочь? заблаговременно

+0

Пожалуйста, посмотрите документацию PHPMailer на https://code.google. com/a/apache-extras.org/p/phpmailer/wiki/Полезный учебник Вы можете загрузить php mailer из меню загрузки на той же странице. Также есть примеры, на которые вы можете ссылаться. –

+0

Просьба не указывать устаревшие источники и документацию. [PHPMailer живет на GitHub] (https://github.com/PHPMailer/PHPMailer). – Synchro

ответ

1

Простой ответ «вы делаете это неправильно». Вызов mail() прямо почти всегда является ошибкой. Построение и отправка писем на самом деле довольно сложно сделать правильно, поэтому используйте эту библиотеку, например, PHPMailer, чтобы сделать это за вас.

Обычная проблема в Windows заключается в том, что обычно у вас нет локального почтового сервера, поэтому функция почты вообще не работает. Некоторые библиотеки (включая PHPMailer) содержат SMTP-клиент, который может отправлять сообщения напрямую без локального почтового сервера. Это не всегда хорошая идея, так как SMTP не подходит для интерактивного использования (например, во время загрузки HTML-страницы), но это может быть все, что вы можете использовать.

Столбцы развертывания Windows, такие как WAMP, предоставляют свой собственный почтовый сервер.

Вы найдете множество примеров с PHPMailer - просто измените их настройки, чтобы работать с вашей конфигурацией. Если вы застряли, есть много документов, readme, справочной wiki и созданной документации API, а также множество вопросов и ответов здесь на SO (смотрите под тегом PHPMailer).

0

Hotmail, чем номер порта. будет 587 и хост будет smtp.live.com

смотрите ссылку ниже для деталей: http://www.technonutty.com/2013/08/send-email-through-php-webapplication.html

+0

OP уже сказал обе эти вещи в вопросе. – Synchro

+0

Да, но не следует использовать почту php в встроенной функции, вместо этого лучше использовать почтовую программу, как указано в учебнике –

+0

Но вы этого не сказали, и эта статья указывает на гарантированную-устаревшую и неполную версию PHPMailer, размещенную на некоторых смешной сайт для обмена файлами. Он также пропускает важную информацию, и в целом, как учебник, это значительно хуже, чем документы, предоставляемые с PHPMailer. Если вы собираетесь использовать PHPMailer, используйте его правильно, прямо из исходного кода, а не из-за какого-то скверного блочного спама. – Synchro

0

Он теперь работает с GMAIL счета, вот мой код:

<?php 
require "C:\wamp\www\PHPMailer-master\PHPMailerAutoload.php"; 
$mail = new PHPMailer(); // create a new object 
$mail->IsSMTP(); // enable SMTP 
$mail->SMTPAuth = true; // authentication enabled 
$mail->Host = "smtp.gmail.com"; 
$mail->Port = 587; //465; // or 587 
$mail->Username = "[email protected]"; 
$mail->Password = "blabla"; 
$mail->SetFrom("[email protected]"); 
$mail->Subject = "DEMANDE d'intervention"; 
$mail->Body = "Bonjour, il y a une urgence et on souhaite votre intervention docteur "; 
$mail->AddAddress("[email protected]"); 
    if(!$mail->Send()) 
    { 
    echo "Mailer Error"; 
    } 
    else 
    { 
    echo "Message has been sent"; 
    } 
?> 

Спасибо всем за вашу помощь :)

+0

Вам не хватает '$ mail-> SMTPSecure = 'tls';'. Посмотрите примеры, представленные в PHPMailer. – Synchro

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