2011-11-13 6 views
0

私は、sendmail.phpを簡単に稼働させるのに最も苦労しています。 マイフォームのHTMLはsendmail.phpにはPHPの作業が必要です

<form action=sendmail.php id=contact-form method=post> 
    <p> 
     <label for=cf_name>Name *</label> 
     <input id=cf_name name=cf_name placeholder='Enter your name...' required=required title=Name type=text /> 
    </p> 
    <p> 
     <label for=cf_email>Email *</label> 
     <input id=cf_email name=cf_email placeholder='Email address...' required=required  title='Email address' type=email /> 
    </p> 
    <p> 
     <label for=cf_subject>Subject *</label> 
     <input id=cf_subject name=cf_subject placeholder='Specify subject...' required=required title=Subject type=text /> 
    </p> 
    <p> 
     <label for=cf_message>Message *</label> 
     <textarea id=cf_message name=cf_message placeholder='Message text...' required=required rows=10 title='Message text'></textarea> 
    </p> 
    <p> 
     <input type=submit value='Send message'/> 
    </p> 
</form> 

ですそして、私のメーラースクリプトは次のとおりです。

<? 
    $cf_email = $_POST['cf_email'] ; 
    $cf_message = $_POST['cf_message'] ; 
    $cf_subject = $_POST['cf_subject'] ; 
    $cf_name = $_POST['cf_name'] ; 

    mail("[email removed]", $cf_subject, $cf_message, $cf_name, $cf_email); 
    print "Congratulations your email has been sent"; 
?> 

ちょうど電子メールが私の電子メールに行きたいです。受信トレイに表示されると、入力した件名が受信トレイの件名として表示されます。出身はその名前になります。それから来た電子メールは彼らの電子メールになります。そして、そのメッセージは彼らがフォームに書いたメッセージになります。 助けてください。

+3

あなたはどんな問題に取り組んでいますか? – Nightfirecat

+0

私はヘッダインジェクションを嗅ぐ。 CCにいくつかの競合他社を置き、問題を起こさせるために脅威を送りましょう。 – ThiefMaster

+0

@TheifMaster私はコードと記号を削除するライブになる前にsecurity.phpスクリプトを組み込むつもりです... – Chris

答えて

0

PHPドキュメントの例を参照してください。

基本的には、引数をmail()に正しく渡していないようです。

mail (string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]]) 

あなたがこれを行うことができるはずPHPのドキュメントから参照として例#4を使用した:それはあるべきhttp://php.net/manual/en/function.mail.phpから

Homer6が言ったように

$cf_email = $_POST['cf_email'] ; 
$cf_message = $_POST['cf_message'] ; 
$cf_subject = $_POST['cf_subject'] ; 
$cf_name = $_POST['cf_name'] ; 

$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
$headers .= 'From: ' . $cf_name . ' <' . $cf_email . '>' . "\r\n"; 

mail('[email protected]', $cf_subject, $cf_message, $headers); 

しかし、私は、あなたができるならswiftmailerのようなものを使ってお勧めします。

+0

ありがとう!ちょうどPHPを学ぼうとしています...実際に何かのためにそれを実際に使用する計画はありません。 – Chris

+0

私はそのサイトをブックマークして覚えていますが、 – Chris

+0

@Chrisそれはあなたのために働いてうれしいです。そして、PHPを学んでいるなら、PHPのドキュメントで事を確認することは非常に良い考えです。ときには、私はドキュメントを読んで、私が学ぶことができる新しいものがあるかどうかを確認します。 –

1

私は非常にhttp://swiftmailer.org/

送信する電子メールのような電子メールのライブラリを使用することをお勧めしたいことは、実際には非常に複雑であり、それは間違って行うにはいくつかの方法があります。

また、プロのウェブサイトを設定している場合は、http://sendgrid.com/またはgmailなどの信頼できるsmtpゲートウェイを使用して、メールが迷惑メールとして取り上げられるのを防ぐことをおすすめします。