2016-10-26 12 views
-1

私のウェブサイトのユーザーがフォームに記入してフォームをメールに送信できるようにするphpメール機能を作成しました。私はPHPの開発者ではありませんが、いくつかの調査をした後、私が聞いたことのないPHPMailerについてたくさんの人が気づいています。または前に使用されます。メールを迷惑メール(php)ではなく受信トレイに表示する方法

私は少しお手伝いしていただければ幸いです。

$to="myemail.com"; 

    //Errors 
    $nameError=""; 
    $emailError=""; 
    $errMsg=""; 


    $errors="";//counting errors 


    $name=""; 
    $email=""; 
    $message=""; 
    if(isset($_POST['send'])){ 


      if(empty($_POST['yourname'])){ //name field empty 

        $nameError="Please enter your name"; 
        $errors++; // increament errors 
      }else{ 

        $name= UserInput($_POST['yourname']); 

        if(!preg_match("/^[a-zA-Z ]*$/", $name)){ 

          $nameError="Only letters and white space accepted"; 
          $errors++; 
        } 

      } 

      if(empty($_POST['email'])){ 

        $emailError="Enter email"; 
        $errors++; 
      }else{ 

        $email = UserInput($_POST['email']); 

        if(!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/", $email)){ 

          $emailError="Invalid Email"; 
          $errors++; 
        } 
      } 


      if(empty($_POST['msg'])){ 

        $errMsg="Enter message"; 
        $errors++; 
      }else{ 

        $message=UserInput($_POST['msg']); 
      } 


      if($errors <=0){//No errors lets setup our email and send it 

        $headers = "MIME-Version: 1.0" . "\r\n"; 
        $headers .= "Content-type:text/html;charset=UTF-8" . "\r\n"; 
        $headers .= 'From: <' . $email . '>' . "\r\n"; 


        $text = "<p>New Message from $name </p>"; 
        $text .= "<p>Name : $name</p>"; 
        $text .= "<p>Email : $email</p>"; 
        $text .= "<p>Message : $message</p>"; 


        mail($to, "Website Contact", $text, $headers); 
        $success="Thank your message was submitted"; 
        $_POST= array(); //clearing inputs fields after success 

      } 


    } 

//フィルターユーザー入力

function UserInput($data){ 

     $data = trim($data); 
     $data = stripcslashes($data); 
     $data = htmlspecialchars($data); 
     return $data; 

} 
+1

phpmailerの使用方法を尋ねていますか?彼らには[githubの例](https://github.com/PHPMailer/PHPMailer)があります。 –

+0

doctypeタイプで始まるテキストが正しく動作するには、テキストが完全なhtmlでなければなりません。正しい形式のHTMLメールのみが受信トレイに配信されます。 –

+0

あなたは送信元アドレスがないので、受信側のサーバは正しいアドレスから来ていないため、受信者のメールアドレスに迷惑メールとしてマークします – Blinkydamo

答えて

0

あなたは、あなたのヘッダーに自分の投稿を変数からの電子メールを使用。あなたの電子メールサーバーがこれを受け取ると、それは偽装されているように見えるでしょう。あなたのサイトは、そのドメインのメールサーバー設定の1つになることはありません。

電子メールのMXレコードとDNSレコードを設定するときは、SPFまたはキー署名を使用してメッセージの送信者とそのドメインの信頼できるメールサーバーからのものであることを証明します。あなたはfromをあなたが管理する電子メールとドメインに変更することができます。あなたはとにかく身体の中の彼らの電子メールを得ています。

最悪の場合SPFレコードを管理できない場合は、少なくとも電子メールからその電子メールにマークすることができます。

$headers .= 'From: <' . $to . '>' . "\r\n"; 
+0

あなたのコメントのためにありがとうございます。この変数をどこに追加しますか? – cazlouise

+0

ヘッダーの行を電子メール変数 – Joel

+0

でこれはPHPMailerの文書に記載されています。 – Synchro

関連する問題