0

私たちはウェブサイトでphpメールフォームを使用しています.gmailだけでなく、他のメールプログラムにメールを配信するときに問題なく動作します.スパムと受信トレイをチェックしましたが、gmailがメールを信頼しておらず、完全に無視しているかのように何も得られません. . どうすればそれらを通過させることができますか?

フォームに使用するコードは次のとおりです。

<div id="contact-form">
<form id="commentForm" action="assets/php/mail.php" method="POST">
<input type="text" name="name" class="required" placeholder="Name..">

<input type="text" name="email" class="required email" placeholder="Email..">

<input type="text" name="phone" class="required" placeholder="Phone..">

<textarea name="message" placeholder="Message.." class="required"></textarea><br />

<input class="subm" type="submit" value="Submit..">
</form>
</div>

そしてphpは

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Contact Form Confirmation</title>

<meta http-equiv="refresh" content="4; url=http://www.domain.co.uk">
</head>

<body>

<?php $name = $_POST['name'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$message = $_POST['message'];
$formcontent="
<h1>From :</h1> $name \n
<h1>Email :</h1> $email \n
<h1>Phone :</h1> $phone \n 
<h1>Message :</h1> $message
";

$recipient = "studio@domain.co.uk";
$subject = "Contact Form";
$mailheader = "MIME-Version: 1.0" . "\r\n";
$mailheader .= "Content-type:text/html;charset=iso-8859-1" . "\r\n";
$mailheader .= "From: $email \r\n";
mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");

echo("<p>Thanks for getting in touch, we'll get back to you shortly..</p>");
?>

</body>
</html>
4

3 に答える 3

3

sendmail メールを無視するメール サービスは GMail だけではありません。

おそらく原因は、From: ヘッダーがメール サーバーのホスト名と一致しないことです。サードパーティのホスティングを使用している場合は、ホスト名 (「myhost.com」など) を見つけて、それを From: ヘッダーで使用する必要があります。次に、代わりに「Reply-To」ヘッダーで正しい電子メール アドレスを使用します。

$mailheader .= "Reply-To: Some One <someone@mydomain.com>\r\n"; 
$mailheader .= "Return-Path: Some One <someone@mydomain.com>\r\n"; 
$mailheader .= "From: Some One <mydomain@myhost.com>\r\n"; 
$mailheader .= "Organization: My Organization\r\n"; 
$mailheader .= "Content-Type: text/plain\r\n"; 

到達可能性を高めるには、SMTP を使用して、実際の電子メール アカウント経由でメールを送信する必要があります。

到達率を完全に最大化するには、ESP を使用する必要があります。

于 2012-11-21T17:43:36.993 に答える
1

別の (より単純な) 可能性... -f オプションを使用してみてください:

mail($recipient, $subject, $formcontent, $mailheader, "-f {$email}") or die("Error!");
于 2012-11-21T17:47:04.873 に答える
0

ここで同様の質問に答えました:

PHPで連絡先フォームからメール情報を送信する

確認してみてください。少なくとも、大量のメールが予想されない場合は、問題を解決するために必要なすべてのコードが含まれていると思います。

于 2013-02-04T03:46:35.443 に答える