Я создал контактную форму с базовыми полями. Форма отправляется владельцу сайта и отправляется клиенту, отправившему форму. Функция работает, но все равно отправляет сообщение в папку нежелательной почты. Что-то не так с моими заголовками или это просто настройки нежелательной почты hotmails.
$headers = "MIME-Version: 1.0rn"; $headers .= "Content-type: text/html; charset=iso-8859-1rn"; $headers .= "From: contact@mysite.com\r\n"; mail($to, $subject, $message, $headers)or die("mail error");
Сообщение – это электронные письма в формате HTML, только более удобный способ отображения сообщения. Также в моей учетной записи электронной почты вместо отображения моего из varable он говорит: «CGI Mailer» – запутанный.
UPDATE – больше не работает
//mail customer $from = 'donotreply@mysite.co.uk'; $subject = 'Your message has been recieved.'; $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; $headers .= 'From: My Site <'.$from.'>' . "\r\n"; $msg = ' <html> <head> <link href="http://linktocss/.../etc" rel="stylesheet" type="text/css" /> </head> <body> formatted message... </body> </html> '; mail($email, $subject, $msg, $headers)or die("mail error");
Это сработало для меня и не попало в SPAM / Junk, но в моей папке «Входящие».
<?php //mail customer $from = 'donotreply@mysite.co.uk'; $to = "email@example.com"; $subject = 'Your message has been received.'; $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; $headers .= "From: The Sending Name <$from>\r\n"; $msg = ' <html> <head> <link href="http://linktocss/.../etc" rel="stylesheet" type="text/css" /> </head> <body> formatted message... </body> </html> '; mail($to, $subject, $msg, $headers)or die("mail error"); ?>
Сноски: Я заметил, что вы используете внешнюю таблицу стилей. Многие службы электронной почты, такие как Google, не будут их отображать. Лучше всего использовать inline styling
для достижения лучших / желаемых результатов.
Причина ( по всей вероятности ) (в соответствии с вашим опубликованным кодом), почему ваша почта попадает в СПАМ, заключается в том, что ваши заголовки недействительны.
У вас rn
сгруппированы вместе, вместо использования \r\n
Используйте это вместо этого:
$headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; $headers .= "From: contact@mysite.com\r\n"; mail($to, $subject, $message, $headers)or die("mail error");
Или еще лучше, используйте: Как взято из функции PHP website's mail() function
$headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; $headers .= "From: contact@mysite.com\r\n"; mail($to, $subject, $message, $headers)or die("mail error");
В настоящее время почтовые клиенты и серверы выполняют массивные проверки на сервере отправки электронной почты, например, обратном DNS-поиске, Graylisting и whatevs. Все эти тесты потерпят неудачу с помощью функции php mail (). Если вы используете динамический ip, это еще хуже.
Используйте PHPMailer-Class и настройте его для использования smtp-auth вместе с хорошо настроенным выделенным SMTP-сервером (либо локальным, либо удаленным), и ваши проблемы исчезли.