Есть проблемы с настройкой заголовка. И самое главное, что вам нужно определить правильный и действительный идентификатор электронной почты в разделе From
, потому что Google обычно используется для проверки домена, из которого поступает почта.
Если это не указано в белом списке на конец Google, оно автоматически отправит письмо спаму, что происходит сейчас, как я думаю.
Проблема проста в том, что функция PHP-Mail не использует хорошо настроенный SMTP-сервер. В настоящее время почтовые клиенты и серверы выполняют массивные проверки на сервере отправки электронной почты, например обратном DNS-поиске, Graylisting и whatevs. Все эти тесты потерпят неудачу с помощью функции php mail(). Если вы используете динамический ip, его еще хуже. Используйте PHPMailer-Class и настройте его на использование smtp-auth вместе с хорошо сконфигурированным выделенным SMTP-сервером (либо локальным, либо удаленным), и ваши проблемы:
Вы можете попробовать приведенный ниже код.
$headers = "From: [email protected]\r\n";
$headers .= "Reply-To: [email protected]\r\n";
$headers .= "Return-Path: [email protected]\r\n";
$headers .= "CC: [email protected]\r\n";
$headers .= "BCC: [email protected]\r\n";
Ссылка Ссылка. https://github.com/PHPMailer/PHPMailerPHPMailer/PHPMailerPHPMailer
Существует еще один код, который вы можете попробовать:
function mail_attachment($filename, $path, $mailto, $from_mail, $from_name, $replyto, $subject, $message) {
$file = $path.$filename;
$file_size = filesize($file);
$handle = fopen($file, "r");
$content = fread($handle, $file_size);
fclose($handle);
$content = chunk_split(base64_encode($content));
$uid = md5(uniqid(time()));
$header = "From: ".$from_name." <".$from_mail.">\r\n";
$header .= "Reply-To: ".$replyto."\r\n";
$header .= "MIME-Version: 1.0\r\n";
$header .= "Content-Type: multipart/mixed;boundary=\"".$uid."\"\r\n\r\n";
$header .= "This is a multi-part message in MIME format.\r\n";
$header .= "--".$uid."\r\n";
$header .= "Content-type:text/plain;charset=iso-8859-1\r\n";
$header .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
$header .= $message."\r\n\r\n";
$header .= "--".$uid."\r\n";
$header .= "Content-Type: application/octet-stream;name=\"".$filename."\"\r\n";
// use different content types here$header .= "Content-Transfer-Encoding: base64\r\n";
$header .= "Content-Disposition: attachment;filename=\"".$filename."\"\r\n\r\n";
$header .= $content."\r\n\r\n";
$header .= "--".$uid."--";
if (mail($mailto, $subject, "", $header)) {echo "mail send ... OK";
// or use booleans here} else {echo "mail send ... ERROR!";
}
}
использование почты функция вместо at.mail, at.mail функция не бросает все предупреждения/ошибки – user3099298
проверить вас спам. – Veer
Обратите внимание, что вам нужно указать правильный идентификатор почты. Я столкнулся с той же проблемой несколько дней назад. –