2014-02-17 4 views
2

Я использовал функцию mail() в кодировке php, но мне не удалось отправить какую-либо почту. Прежде чем продолжить, я хочу уточнить контекст использования функции mail().php function mail() не работает

Я не принимал свой сайт, поэтому он находится на локальном хосте. Я установил smtp, порт sendmail_path и т. Д.

После долгих поисков мне кажется, что мне нужно загрузить почтовый сервер. Я загрузил бесплатный сервер sendmail и настроил его как предполагаемый сайт. Однако, все напрасно, кто-то сказал мне, что я не могу использовать функцию почты, пока я не размещу свой сайт не только на localhost. Пожалуйста, направляйте меня.

<?php 
    $from = "[email protected]"; // sender 
    $subject = " My cron is working"; 
    $message = "My first Cron :)"; 

    // message lines should not exceed 70 characters (PHP rule), so wrap it 

    $message = wordwrap($message, 70); 

    // send mail 

    ini_set("SMTP","localhost"); 
    ini_set("smtp_port","25"); 
    ini_set("sendmail_from","[email protected]"); 
    ini_set("sendmail_path", "C:\wamp\bin\sendmail.exe -t"); 

    mail("[email protected]",$subject,$message,"From: $from\n"); 

    echo "Thank you for sending us feedback"; 

?> 

это мой Sendmail конфигурационный файл:

smtp_server=smtp.gmail.com 
smtp_port=587 
smtp_ssl=auto 

;default_domain=domain.com 
[email protected] 
auth_password=8888 

force_sender=j*****@gmail.com 

(!) SCREAM: Error suppression ignored for 
(!) Warning: mail() [<a href='function.mail'>function.mail</a>]: Failed to connect to  mailserver at &quot;localhost&quot; port 25, verify your &quot;SMTP&quot; and &quot;smtp_port&quot; setting in php.ini or use ini_set() in C:\wamp\www\test.php on line 20 
+0

Попробуйте изменить «почту от», как Google будет знать, что вы не п ormally разрешено отправлять электронную почту от hotmai –

+0

Попробуйте использовать SMTP-сервер ISP. Они обычно позволяют * ВСЕ * отправлять электронную почту своим клиентам, пока вы не занимаетесь рассылкой спама. – webmaster777

+1

Вы получаете какую-либо ошибку? ! –

ответ

10

Я думаю, что вы не настроены должным образом,

если вы используете XAMPP, то вы можете легко отправить почту с локального хоста.

например, вы можете настроить C:\xampp\php\php.ini и c:\xampp\sendmail\sendmail.ini для отправки почты по почте.

C:\xampp\php\php.ini найти extension=php_openssl.dll и удалить точку с запятой с начала этой строки, чтобы SSL работал в gmail для localhost.

в файле php.ini найти [mail function] и изменить

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

C:\xampp\sendmail\sendmail.ini Теперь Open. Заменить весь существующий код в sendmail.ini со следующим кодом

[sendmail] 

smtp_server=smtp.gmail.com 
smtp_port=587 
error_logfile=error.log 
debug_logfile=debug.log 
[email protected] 
auth_password=my-gmail-password 
[email protected] 

Теперь вы сделали !! создавать php-файл с функцией почты и отправлять почту с localhost.

Update

Во-первых, убедитесь, что установка вы РНР SSL поддержка (искать раздел "OpenSSL" на выходе из phpinfo()).

Вы можете установить следующие настройки в php.ini:

ini_set("SMTP","ssl://smtp.gmail.com"); 
ini_set("smtp_port","465"); 
+0

Ответ SMTP-сервера: 530 5.7.0 Должен выдавать Сначала запустите команду STARTTLS. сейчас я получаю это сообщение. мой установка был: ini_set ("SMTP", "smtp.gmail.com"); ini_set ("smtp_port", "587"); ini_set ("sendmail_from", "****** @ gmail.com"); это была моя настройка, однако, когда я установил эти настройки: – user1195450

+0

проверить раздел обновления в своем ответе –

+0

да, я действительно проверял файл php.ini, который он поддерживает openssl, пожалуйста, руководство, что мне нужно сделать сейчас? я уже включил IMAP в gmail – user1195450