2016-04-02 1 views
2

Я пытаюсь отправить электронное письмо с localhost, а программа, которую я использую, - MAMP. Я посмотрел это онлайн и сделал все написанное, но это все равно не сработает. Функция я вошел в моем PHP файл для отправки электронной почты является:Отправка электронной почты с локального компьютера

mail(
    $admin_email, $messaage, 
    'Works!', 


    'An email has been generated from your localhost, congratulations!'); 

Кроме того, я заполнил всю ценность отправки электронной почты, как показано ниже:

smtp_server=smtp.gmail.com 
; smtp port (normally 25) 

smtp_port=25 
smtp_ssl=ssl 
auth_username=****@gmail.com 
auth_password=******* 

hostname=localhost 

Очевидно - мой адрес электронной почты и пароль заполненный с использованием моей электронной почты и пароля. Также я изменил файл php.ini, как показано:

; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). 
;http://php.net/sendmail-path 
sendmail_path = C:\Windows\System32\sendmail\ -t -i -f [email protected] 

Может кто-нибудь сказать мне, где моя ошибка?

+0

Если вы работаете в этом от домашней сети, ваш провайдер, скорее всего, блокирует исходящий трафик, предназначенный для порта 25, в качестве меры защиты от спама. Просто измените свой ** smtp_port = 25 ** на альтернативный SMTP-порт 587, который обычно не блокируется: ** smtp_port = 587 ** –

+0

Я пробовал это ... все еще не работает :( – chris

+0

Попробуйте также комментировать ssl –

ответ

2

Вы не сможете отправлять через SMTP-сервер Google, поскольку функция mail() не выполняет SSL or TLS authentication, which is required. См. this answer для получения дополнительной информации. Вместо этого вы должны использовать класс PHPMailer.

Также обратите внимание, что вы используете mail() неправильно. У вас есть

mail(
$admin_email, $messaage, 
'Works!', 
'An email has been generated from your localhost, congratulations!'); 

Второй аргумент должен быть предметом, а третьим должно быть сообщение. Четвертый аргумент является необязательным и, как предполагается, содержит дополнительные почтовые заголовки:

additional_headers (опционально)

Строки для вставки в конце заголовка электронной почты.

Обычно это используется для добавления дополнительных заголовков (From, Cc и Bcc). Несколько дополнительных заголовков должны быть разделены CRLF (\r\n). Если для составления этого заголовка используются внешние данные, данные следует дезинфицировать, чтобы не вводить нежелательные заголовки.

Это не сообщение типа обычного текста, которое вы используете. Добавляя открытый текст, в котором должен быть правильно отформатированный заголовок, вы, вероятно, сломаете некоторые серверы и некоторые почтовые программы.

0

Если вы используете smtp_port=25 вы должны изменить smtp_ssl=none или использовать этот

smtp_port=587 
smtp_ssl=tls 

Вы изменили настройки из вашего аккаунта Gmail

доступа вашей учетной записи электронной почты. Нажмите на инструмент Gear Tool> Settings> Forwarding и POP/IMAP> IMAP.Нажмите кнопку «Включить IMAP», затем сохраните ваши изменения

Для проверки электронной почты использовать эти кодовые

<?php 
 
$to  = '[email protected]'; 
 
$subject = 'Fake sendmail test'; 
 
$message = 'If we can read this, it means that our fake Sendmail setup works!'; 
 
$headers = 'From: [email protected]' . "\r\n" . 
 
      'Reply-To: [email protected]' . "\r\n" . 
 
      'X-Mailer: PHP/' . phpversion(); 
 

 
if(mail($to, $subject, $message, $headers)) { 
 
    echo 'Email sent successfully!'; 
 
} else { 
 
    die('Failure: Email was not sent!'); 
 
} 
 
?>

+0

Проверьте свой путь Sendmail, который я использую так: sendmail_path = "\" C: \ xampp \ sendmail \ sendmail.exe \ "-t" ** –

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

  • Нет связанных вопросов^_^