Хорошо, у вас есть ряд проблем. Поскольку комментарии предполагают, что вы в настоящее время вообще не вызываете функцию mail ().
Функция mail () принимает несколько аргументов и может иметь ряд проблем с доставкой почты, если она неправильно построена.
Эта строка:
$mml($_POST['email'],'Reset Password',$msg,$headers);
Должна быть:
$mnl = mail($_POST['email'],'Reset Password',$msg,$headers);
Это будет означать, что вы получите логическое значение true / false, если функция FUNCTION будет выполнена успешно. (Это не обязательно означает, что ваша почта попадет туда, куда она должна идти ...) Чтобы убедиться, что ваша почта действительно получит то, для чего она предназначена, вам нужно убедиться, что все ваши заголовки построены правильно и в дополнение к этомучто ваши DNS-записи настроены правильно (DKIM, SPF и т. д.)
Рассмотрим следующий фрагмент кода:
$hostname = "yourhostname.org";
$date = date('r', time());
$nameto = "Mr. Target";
$recipient = "target@targetdomain.com";
$from = "origin_address@yourdomain.net";
$namefrom = "Mr. Sender";
$subject = "Password Reset Thingy";
$headers = [];
$headers[] = "MIME-Version: 1.0";
// $headers[] = "Content-type: text/plain; charset=iso-8859-1";
$headers[] = "Content-type: text/html; charset=utf-8";
$headers[] = "From: $namefrom <$from>";
$headers[] = "Sender: $namefrom <$from>";
// $headers[] = "Bcc: Some Other Dude <me@mydomain.net>";
$headers[] = "Reply-To: $namefrom <$from>";
$headers[] = "To: $nameto <$recipient>";
$headers[] = "Subject: $subject";
$headers[] = "Message-ID: <". sha1(microtime(true)) ."@$hostname>"; //This is essential for getting to Gmail addresses....
$headers[] = "X-Mailer: PHP/".phpversion();
$headers[] = "Date: $date";
$headers = implode("\r\n", $headers);
$mnl = mail($recipient,$subject,$body,$headers,"-f $from") ;
Поэтому важно включить ключ -f в функцию mail (чтобы заставитьотправлять), заголовки также должны быть составлены как можно более подробно, чтобы избежать попадания в них спам-фильтров. Вы должны будете в свое время прочитать о правильном построении заголовка, что выходит за рамки того, что я хочу здесь напечатать.
Функция mail в PHP в общем-то привередлива, однако вы можете посмотреть на использование PHPMailer каккласс, который делает многие вещи намного проще.
Или вы можете посмотреть на использование сокетов или чего-то еще и написать свою собственную функцию для отправки его с использованием SMTP, что я иногда делаю, следующая функция - это то, что яобычно используйте, если чипы не работают и даст вам хотя бы отправную точку для работы с ....
<code> function authSendEmail($from, $namefrom, $to, $nameto, $subject, $headers, $message) {
$smtpServer = "mail.yourhostname.com";
$port = "25"; //Or whatever the default port on your server is
$timeout = "30";
$username = "origin@yourdomain.com";
$password = "myemailpassword";
$localhost = "yourhostname.com";
$newLine = "\r\n";
$date = date('r', time());
//Connect to the host on the specified port
$smtpConnect = fsockopen($smtpServer, $port, $errno, $errstr, $timeout);
$smtpResponse = fgets($smtpConnect, 515);
if(empty($smtpConnect)) {
$output = "Failed to connect: $smtpResponse";
return $output;
} else {
$logArray['connection'] = "Connected: $smtpResponse";
}
//Request Auth Login
fputs($smtpConnect,"AUTH LOGIN" . $newLine);
$smtpResponse = fgets($smtpConnect, 515);
$logArray['authrequest'] = "$smtpResponse";
//Send username
fputs($smtpConnect, base64_encode($username) . $newLine);
$smtpResponse = fgets($smtpConnect, 515);
$logArray['authusername'] = "$smtpResponse";
//Send password
fputs($smtpConnect, base64_encode($password) . $newLine);
$smtpResponse = fgets($smtpConnect, 515);
$logArray['authpassword'] = "$smtpResponse";
//Say Hello to SMTP
fputs($smtpConnect, "HELO $localhost" . $newLine);
$smtpResponse = fgets($smtpConnect, 515);
$logArray['heloresponse'] = "$smtpResponse";
//Email From
fputs($smtpConnect, "MAIL FROM: $from" . $newLine);
$smtpResponse = fgets($smtpConnect, 515);
$logArray['mailfromresponse'] = "$smtpResponse";
//Email To
fputs($smtpConnect, "RCPT TO: $to" . $newLine);
$smtpResponse = fgets($smtpConnect, 515);
$logArray['mailtoresponse'] = "$smtpResponse";
//The Email
fputs($smtpConnect, "DATA" . $newLine);
$smtpResponse = fgets($smtpConnect, 515);
$logArray['data1response'] = "$smtpResponse";
fputs($smtpConnect, "To: $to\nFrom: $from\nSubject: $subject\n$headers\n\n$message\n.\n");
$smtpResponse = fgets($smtpConnect, 515);
$logArray['data2response'] = "$smtpResponse";
// Say Bye to SMTP
fputs($smtpConnect,"QUIT" . $newLine);
$smtpResponse = fgets($smtpConnect, 515);
$logArray['quitresponse'] = "$smtpResponse";
//Show log
// echo "<pre>$to<br/>";
// print_r ($logArray);
// echo "
"; $ output = $ logArray; вернуть $ output;}
И тогда вы можете назвать это так:
$result=authSendEmail($from,$fname,$to,$nameto,$subject,$headers,$message) ; //Use SMTP
var_dump($result);
Надеюсь, это каким-то образом поможет вам в той или иной форме!