Подтвердить что ты не робот

Отправить письмо с localhost на XAMMP в PHP с помощью почтового сервера GMAIL

Я пытаюсь отправить электронное письмо с localhost на мою учетную запись электронной почты yahoo, используя функцию php mail(), ответ говорит, что я успешно отправил электронное письмо, но я не получил никаких писем. Я читал и пробовал много так называемого "простого способа" для отправки электронной почты, но результат разочаровывает, никто из них не работает для меня. Ниже приведены код, конфигурации и сообщение об ошибке. Может кто-нибудь просветить меня этим? Спасибо.

php code

<?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!');
}
?>

Конфигурация для php.ini(я использую почтовый сервер gmail)

SMTP = smtp.gmail.com
smtp_port = 587
sendmail_from = [email protected]
sendmail_path = "\" C:\xampp\sendmail\sendmail.exe\ "-t"

Конфигурация для sendmail.ini

smtp_server = smtp.gmail.com
smtp_port = 587
smtp_ssl =
TLS error_logfile = error.log
debug_logfile = debug.log
[email protected]
auth_password = мойпароль
[email protected]

сообщение об ошибке в журнале ошибок sendmail с портом 587

13/10/02 13:36:41: Сначала необходимо выпустить команду STARTTLS. k4sm129639pbd.11 - gsmtp

4b9b3361

Ответ 1

Вот ссылка, которая дает мне ответ:

[Установить] " поддельный sendmail для windows". Если вы не используете XAMPP, вы можете скачать его здесь: http://glob.com.au/sendmail/sendmail.zip

[Modify] the php.ini file to use it (commented out the other lines):

[mail function]
; For Win32 only.
; SMTP = smtp.gmail.com
; smtp_port = 25

; For Win32 only.
; sendmail_from = <e-mail username>@gmail.com

; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
sendmail_path = "C:\xampp\sendmail\sendmail.exe -t"

(игнорируйте бит "Unix only", поскольку мы действительно используем sendmail)

Затем вам нужно настроить файл "sendmail.ini" в каталоге, где был установлен sendmail:

[sendmail]

smtp_server=smtp.gmail.com
smtp_port=25
error_logfile=error.log
debug_logfile=debug.log
auth_username=<username>
auth_password=<password>
force_sender=<e-mail username>@gmail.com

Чтобы получить доступ к учетной записи Gmail, защищенной двухфакторной проверкой, вам необходимо создать пароль для приложения. (источник)

Ответ 2

в файле php.ini, раскомментируйте этот

sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
;sendmail_path="C:\xampp\mailtodisk\mailtodisk.exe"

и в sendmail.ini

smtp_server=smtp.gmail.com
smtp_port=465
error_logfile=error.log
debug_logfile=debug.log
[email protected]
auth_password=yourpassword
[email protected]
hostname=localhost

настройте это... он будет работать... он отлично работает для меня.

спасибо.

Ответ 3

require_once "Mail.php";

$from = '<from.gmail.com>';
$to = '<to.yahoo.com>';
$subject = 'Hi!';
$body = "Hi,\n\nHow are you?";

$headers = array(
    'From' => $from,
    'To' => $to,
    'Subject' => $subject
);

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

$mail = $smtp->send($to, $headers, $body);

if (PEAR::isError($mail)) {
    echo('<p>' . $mail->getMessage() . '</p>');
} else {
    echo('<p>Message successfully sent!</p>');
}

Ответ 4

[sendmail]

smtp_server=smtp.gmail.com  
smtp_port=25  
error_logfile=error.log  
debug_logfile=debug.log  
[email protected] 
auth_password=gmailpassword  
[email protected]

нужно аутентифицировать имя пользователя и пароль почты, и только один раз можно успешно отправить почту с localhost

Ответ 5

Не забудьте создать второй пароль для своей учетной записи Gmail. Вы будете использовать этот новый пароль в своем коде. Прочтите это:

https://support.google.com/accounts/answer/185833

В разделе "Как создать пароль для приложения" нажмите "Пароль приложения", затем в разделе "Выбрать приложение" выберите "Почта", выберите свое устройство и нажмите "Создать". Второй пароль будет напечатан на экране.

Ответ 6

Самый простой способ - использовать SMTP-сервер PHPMailer и Gmail. Конфигурация будет выглядеть следующим образом.

require 'PHPMailer/PHPMailerAutoload.php';
$mail = new PHPMailer;

$mail->isSMTP();                            
$mail->Host = 'smtp.gmail.com';            
$mail->SMTPAuth = true;                     
$mail->Username = 'Email Address';          
$mail->Password = 'Email Account Password'; 
$mail->SMTPSecure = 'tls';               
$mail->Port = 587;                  

Пример script и полный исходный код можно найти здесь - Как отправлять электронную почту с Localhost в PHP

Ответ 7

Проверьте свой спам. mail() иногда отправляет почту спаму.

Ответ 8

ПОПРОБУЙТЕ ЭТО. ЭТО РАБОТАЕТ НА МНЕ ВСЕГДА.

    $config['protocol']    = 'smtp';
    $config['smtp_host']    = 'ssl://smtp.gmail.com';
    $config['smtp_port']    = '465';                            //ssl
    $config['smtp_timeout'] = '7';
    $config['smtp_user']    = '[email protected]';
    $config['smtp_pass']    = 'pentium409';
    $config['charset']    = 'utf-8';
    $config['newline']    = "\r\n";
    $config['mailtype'] = 'html'; 
    $config['validation'] = TRUE;

Ответ 9

сначала настройте файл php.ini, который находится в вашем xampp/php, чтобы

[почтовая функция]; XAMPP: Комментируйте это, если вы хотите работать с SMTP-сервером, таким как Mercury SMTP = smtp.gmail.com
smtp_port = 25

; Только для Win32.
; http://php.net/sendmail-from
sendmail_from = [email protected]

sendmail_path = "\" C:\xampp\sendmail\sendmail.exe\"-t -i"

удалить точку с запятой перед отправкой sendmail и sendmailpath

после этого настройте файл sendmail.ini, который находится в папке sendmail, вы можете выполнить поиск в папке xampp и сделать следующее:

[Отправить письмо]

smtp_server = smtp.gmail.com
smtp_port = 587
smtp_ssl = авто
default_domain = локальный
error_logfile = error.log
[email protected]
auth_password = yourgmailpassword
pop3_server =
pop3_username =
pop3_password =
[email protected]
force_recipient =
имя хоста = локальный

затем используйте функцию почты
как

mail ("[email protected]", "Успех", "Отправлять почту с localhost с помощью PHP");
в php save file как email.php последнее, что нужно сделать, чтобы двухэтапная аутентификация была отключена в вашей учетной записи gmail, иначе вы не получите почту и настройки gmail > ** Пересылка и POP/IMAP разрешить imap и сохранить изменения и, наконец, отключить приложение менее безопасных подключений
Пойдите, получайте удовольствие