0

はい、私は PHP と mySQL を初めて使用しますが、いくつかの質問があります。いくつかの質問に答えてください。

(これが進行している間に答えを見つけることができるかどうかを確認するために、Googleでさらに読み込もうとします。見つけた場合は、ここにも自分の答えを投稿します)

  1. 自分のサイトにフィードバック フォームが必要です。PHP のメール フォームを見ていますが、ここで少し混乱しています -

API では、誰かが私にメールを送信するには、php スクリプトが次のコードを入力して送信する必要があると書かれています。

mail(to,subject,message,headers,parameters)

ただし、この関数内に「from」引数がないことに気付きました。これはなぜですか?このようなフィードバック リクエストを受け取った後、どうすれば相手のメール アドレスを見つけて、自分のメール アドレスから返信することができますか?

また、送信者の電子メールを「ヘッダー」引数自体に含める部分についても読んでいます。「ヘッダー」引数内にこれを含めると、メールシステムは送信者の電子メールがあることをどのように収集しますか? (私のウェブホストは返信する前に自動返信を提供し、送信者のメールがシステムが自動返信すべきメールであることを認識できるようにしたいので、この部分を尋ねています)

Web ページに mailto:email@email.com のリンクを貼るだけの方が簡単でしょうか?

今のところ調べようとしているのはこれだけだと思います。もっと複雑な質問がありますが、最初に簡単なものから解決しようと思います。

4

5 に答える 5

6

マニュアルでphpメールをチェックしてください

additional_headers (オプション)

メールヘッダーの末尾に挿入する文字列。

これは通常、追加のヘッダー (From、Cc、および Bcc) を追加するために使用されます。複数の余分なヘッダーは、CRLF (\r\n) で区切る必要があります。

マニュアルの例

$to      = 'nobody@example.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster@example.com' . "\r\n" .
           'Reply-To: webmaster@example.com' . "\r\n" .
           'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);

アップデート:

また、差出人アドレスに名前を入れることについても尋ねました。これを行うには、ヘッダーの From: を次のように変更します。WEBMASTER NAME <webmaster@example.com>

于 2012-05-02T14:44:47.963 に答える
1

ページに mailto リンクを配置すると、ユーザーがそれをクリックすると、ユーザーの電子メール クライアントが開き、電子メールを送信できます。欠点は、ページにある電子メール アドレスにスパマーが簡単にアクセスできることです。

PHP フォームを使用している場合、メール アドレスは非表示のままになります。コード内に埋もれています。欠点は、設定がより複雑になることです。

Set Sail Media で前述したように、headers パラメータ内に From アドレスを指定できます。設定されていない場合は、Web サーバーが実行されているプロセスの詳細 (apache@example.com など) が使用されます。最も有用ではありませんが、通常は問題になりません。

ユーザーの電子メール アドレスを知りたい場合は、フォームの一部として尋ねるしかありません。自動的に拾うことはできません。

于 2012-05-02T14:51:40.840 に答える
0

メール機能は、ローカルに構成された、または指定されたリモート メール サーバーのみを介して人々にメールを「送信」するためにのみ使用されます。メールを「受信」することはできません。そのためには、メール サーバーからデータを読み取るなどの他の機能が必要になります。そのメールサーバーに依存しています。

Web ページに「mailto」リンクを配置する方が簡単ですが、基本的に「mail()」を使用すると、Web サーバーがメールの送信のみが可能な電子メール クライアントとして機能する小さなフォームを作成できます。 (高度な機能を追加しない限り)。

于 2012-05-02T14:46:44.677 に答える
0

以下は、役立つと思われる基本的なフォーム処理スクリプトです。

<?php

if ( isset( $_POST ) && count( $_POST ) > 0 ){
    // Form was submitted, process it

    foreach ( $_REQUEST as $k=>$v ){ // Loop through values submitted and add them to a message to send to form owner
        $k = stripslashes( $k );
        $v = stripslashes( $v );
        $message .= "$k: $v\r\n";
    }

    $headers = "From: Name <email@domain.com>\r\n"; // This is the FROM address
    // Uncomment the following line to set From using the value passed to the form
    // $headers = "From: {$_POST['your_name']} <{$_POST['email']}>\r\n"; // This is the FROM address

    $ab = mail( 'recipient_email@domain.com', 'Contact Submission Form', $message, $headers ); // Send the email

    if ( $ab == true ){
        // Message sent!
        echo '<strong>Thank you, your message was received.</strong>';
    }

}

?>

<form action="" method="post" id="contactform">
<label for="your_name">Name:</label>
<input type="text" name="your_name" id="your_name" class="field" value="" />
<label for="email">Email:</label>
<input type="text" name="email" id="email" class="field" value="you@domain.com" />
<label for="phone">Phone:<span>(optional)</span></label>
<input type="text" name="phone" id="phone" class="field" value="(000) 000-0000" />
<label for="message">Message:</label>
<textarea name="message" id="message" class="field textarea" cols="20" rows="5"></textarea>

<input type="submit" value="Send Message" />

</form>
于 2012-05-02T14:47:52.317 に答える
0

電子メールを送信している SMTP サーバーは、あなたのもの (あなたの Web サイト) です (リモート サーバーとして構成できます)。そのため、From フィールドは通常、フォームのテキスト フィールドから取得されます。

于 2012-05-02T14:51:23.777 に答える