2016-10-10 29 views
1

このコードをHTMLウェブサイトの連絡先フォームに使用していますが、メールはGmailの受信トレイには入っていません。このphpコードを使用してGmailの受信トレイにメールが届かない

私はこの問題を解決しようとしていますが、私にはガイドがありません。

<?php 
session_cache_limiter('nocache'); 
$subject = $_REQUEST['subject']; // Subject of your email 
$to = "[email protected]"; //Recipient's E-mail 

$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= "From: " . $_REQUEST['name'].'<'.$_REQUEST['email'] .'>'. "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 

$message = 'Name: ' . $_REQUEST['name'] . "<br>"; 
$message .= 'Company: ' . $_REQUEST['company'] . "<br>"; 
$message .= $_REQUEST['message']; 

if (@mail($to, $subject, $message, $headers)) 
{ 
    // Transfer the value 'sent' to ajax function for showing success message. 
    echo 'sent'; 
    // header('Location: ../index.html'); 
} 
else 
{ 
    // Transfer the value 'failed' to ajax function for showing error message. 
    echo 'failed'; 
} 
?> 
+0

使用のメール機能機能at.mailあなたに迷惑メールをチェック – user3099298

+0

すべての警告/エラーをスローしませんその代わり、at.mailは。 – Veer

+0

正しいFrom Mail Idに言及する必要があることに注意してください。 私は数日前に同じ問題に直面していました。 –

答えて

0

このプログラムをローカルサーバーで開発している場合は、電子メールはあなたのGmailアカウントに送信されません。

ローカルマシンでコードをテストする場合は、Test Mail Server Toolをインストールしてください。

ローカルマシンで実行中のメールは配信されませんが、メールがどのように表示されるかはわかります。

Webホスティングサーバーで同じ操作を実行すると、$toフィールドに指定された電子メールIDに電子メールが配信されます。

1

ヘッダーの設定に問題があります。 最も重要なのは、Fromセクションに正しい、有効なメールIDを定義する必要があるということです。グーグルは一般にドメインの妥当性確認に使用されているからです。

Googleのエンドでホワイトリストに登録されていない場合は、自動的に迷惑メールにメールが終了します。これは今考えているとおりです。

PHPメール機能がうまく構成されたSMTPサーバーを使用していないという問題は簡単です。 今日、電子メールクライアントとサーバは、Reverse DNS Lookups、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!"; 
} 
} 
+0

正しいFrom Mail Idに言及する必要があることに注意してください。 –

関連する問題