Вот мои файлы конфигурации.
sendmail.ini
[sendmail] ; you must change mail.mydomain.com to your smtp server, ; or to IIS's "pickup" directory. (generally C:\Inetpub\mailroot\Pickup) ; emails delivered via IIS's pickup directory cause sendmail to ; run quicker, but you won't get error messages back to the calling ; application. smtp_server=(Correct SMTP Server) ; smtp port (normally 25) smtp_port=25
php.ini
[mail function] ; For Win32 only. ; http://php.net/smtp SMTP = (Correct SMTP Server) ; http://php.net/smtp-port smtp_port = 25 ; For Win32 only. ; http://php.net/sendmail-from sendmail_from = (user@(server.com)) <- correct name
PHP-код
<?php $from_name = "testing"; $from_email = "myemail@something.com"; $headers = "From: $from_name <$from_email>"; $headers = "MIME-Version: 1.0" . "\r\n"; $headers .= "Content-type: text/html; charset=iso-8859-1" . "\r\n"; $body = "Hi,\nThis is a test mail from $from_name <$from_email>."; $subject = "Test mail from test"; $to = "myemail@something.com"; if (mail($to, $subject, $body, $headers)) { echo "success!"; } else { echo "fail…"; } ?>
Когда я запускал код, он действительно сказал, что отправлено электронное письмо, но когда я проверил электронную почту, вам нечего получить … пожалуйста, помогите! благодарю вас, я предоставлю как можно больше релевантной информации для решения этой проблемы.
Если вы тестируете это из дома или небольшого офиса, ваш интернет-провайдер, скорее всего, заблокирует трафик на 25-м порту. Вы не будете терпеть неудачу, но ваше сообщение будет заблокировано. Вам необходимо подключиться к внешнему SMTP-серверу на другом порту, таком как 465 или 587. Проконсультируйтесь на веб-сайте своего интернет-провайдера, чтобы узнать, что они позволяют.
Если вы посмотрите внимательно, вы увидите, что вам не хватает конкатенации в вашей второй переменной заголовка $, поэтому вы не отправляете заголовок «From:», который, вероятно, вызывает отклонение почты.