1

私のサイトには非常にシンプルな連絡先フォームがあります。ユーザーが「CC:」の横にチェック マークを入れるだけで、まったく新しいフィールドを作成しなくても CC にできるようになることを望んでいます。

HTMLは次のとおりです。

<form action="send.php" method="post" name="form1">
Name: <input name="name" size="35"><br/>
E-mail:<input name="email" size="35"><br/>
CC: <input input type="checkbox" name="mailcc"><br/>
Comment: <textarea cols="35" name="comment" rows="5"></textarea> <br />
<input name="Submit" type="submit" value="Submit">
</form>

そして、ここにPHPがあります:

<?php
$name = $_REQUEST['name'] ;
$email = $_REQUEST['email'] ;
$comment = $_REQUEST['comment'] ;

mail( "me@me.com", "Message Title",  "Name:  $name\n Email:  $email\n Comments: $comment\n " );

echo "Message Sent! Thanks!"

?>

このサイトからいくつかのアイテムを追加しようとしています:

http://w3mentor.com/learn/php-mysql-tutorials/php-email/send-email-with-cccarbon-copy-bccblind-carbon-copy/

ただし、CC 用のテキスト フィールドを作成する必要があるため、ユーザーは電子メールを 2 回入力する必要があります。

私も試し $mailheader.= "Cc: " . $email ."\n";てみましたが、それもうまくいきません。

4

2 に答える 2

2
  1. value="1"HTML でチェックボックスに値 ( ) を持たせます。
  2. $mailheader関数の最後に変数 ( ) を最後のパラメーターとして追加しmail()ます。

したがって、本質的に:

$name = $_POST['name'] ;
$email = $_POST['email'] ;
$comment = $_POST['comment'] ;

if ($_POST['mailcc'] == 1) {
    $mailheader .= "CC: $name <$email>";
}

mail("me@me.com", "Message Title", "Name:  $name\n Email:  $email\n Comments: $comment\n ", $mailheader);

echo "Message Sent! Thanks!";
于 2011-02-13T00:41:01.930 に答える
0

テストしている Cc アドレスは「宛先」アドレス (例では me@me.com) と同じですか?

簡単なテストを行ったところ、このコードではメールが 1 つしか届きません。

<?php
$to = "my@address.com";
$subject = "Testing";
$message = "Testing message";
$headers = "Cc: my@address.com";

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

しかし、これで私は私の他の電子メールアカウントにコピーを取得します:

<?php
$to = "my@address.com";
$subject = "Testing";
$message = "Testing message";
$headers = "Cc: my@otheraddress.com";

mail($to, $subject, $message, $headers);
于 2011-02-13T00:54:04.793 に答える