Я пытаюсь отправить почту в Windows через мою учетную запись Gmail, я настроил свой php.ini:
SMTP=smtp.gmail.com
smtp_port=587
[email protected]
sendmail_path="\"C:\xampp\sendmail\sendmail.exe\" -t"
and sendmail.ini :
smtp_server=smtp.gmail.com
smtp_port=587
smtp_ssl=auto
error_logfile=error.log
[email protected]
auth_password=my-password-confident
[email protected]
вот мой код:
<?php
// The message
$message = "Line 1\r\nLine 2\r\nLine 3";
// In case any of our lines are larger than 70 characters, we should use wordwrap()
$message = wordwrap($message, 70, "\r\n");
// Send
$send = mail('[email protected]', 'My Subject', $message);
if ($send) {
echo "send";
}
else {
echo "fail";}
?>
также я изменил свою безопасность Google, потому что стал менее безопасным
Я понятия не имею, почему, кто-нибудь, помогите мне?
Я не уверен, что вы используете Windows 8, но если вы делаете, вы должны сделать следующее —
1) В PHP.ini сделайте так, чтобы часть электронной почты выглядела так
; XAMPP: Comment out this if you want to work with an SMTP Server like Mercury
SMTP = localhost
smtp_port = 465
; For Win32 only.
; http://php.net/sendmail-from
;sendmail_from =
; XAMPP IMPORTANT NOTE (1): If XAMPP is installed in a base directory with spaces (e.g. c:\program filesC:\xampp) fakemail and mailtodisk do not work correctly.
; XAMPP IMPORTANT NOTE (2): In this case please copy the sendmail or mailtodisk folder in your root folder (e.g. C:\sendmail) and use this for sendmail_path.
; XAMPP: Comment out this if you want to work with fakemail for forwarding to your mailbox (sendmail.exe in the sendmail folder)
sendmail_path = "C:\xampp\sendmail\sendmail.exe -t"
; XAMPP: Comment out this if you want to work with mailToDisk, It writes all mails in the C:\xampp\mailoutput folder
;sendmail_path="C:\xampp\mailtodisk\mailtodisk.exe"
; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail(), even in safe mode.
;mail.force_extra_parameters =
; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename
mail.add_x_header=on
2) Сделайте так, чтобы часть sendmail.ini smtp выглядела так
smtp_server=localhost
; smtp port (normally 25)
smtp_port=25
; SMTPS (SSL) support
; auto = use SSL for port 465, otherwise try to use TLS
; ssl = alway use SSL
; tls = always use TLS
; none = never try to use SSL
smtp_ssl=none
; if your smtp server requires authentication, modify the following two lines
[email protected]
auth_password=password
3) Скачать Stunnel https://www.stunnel.org/downloads.html и внесите следующие изменения в stunnel.conf. Stunnel работает в трее, каждый раз, когда вы вносите изменения, щелкните правой кнопкой мыши значок Stunnel и перезагрузите файл conf.
cert = stunnel.pem
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1
key = stunnel.pem
[ssmtp]
accept = 465
connect = 25
[gmail-smtp]
client = yes
accept = 127.0.0.1:25
connect = smtp.gmail.com:465
; To check logs you can enable logging using following lines
debug = 7
4) Перейдите в папку «Sendmail», щелкните правой кнопкой мыши файл sendmail.exe -> «Свойства» -> «Совместимость» -> нажмите кнопку «Внести изменения для всех пользователей» -> выбрать совместимость с Windows XP (Service Pack 3) и установите флажок «Запуск от имени администратора».
5) Всегда запускать XAMPP как администратор !!
Это необходимо только в Windows 8+ (например, в Windows 2008 R2 мне нужно было только правильно настроить sendmail на gmail, и все заработало).
в Windows8
после смены
1-php.ini
2-sendmail.ini
перейдите в C: \ xampp \ sendmail
Надеюсь, что это помогает кому-то еще.
это работает на мой