0

phpmailer を使用して HTML フォーム経由で送信される電子メールの「宛先」アドレスを設定しようとしています。最終的な目標は、ドロップリストを利用して、ユーザーがニーズに応じて連絡先を選択できるようにすることです。しかし、私はPHPについてあまり知らないので、一歩一歩進んでいて、すでに立ち往生しています。

購入したサイトに付属の例を使用していますが、to フィールドを含めるように変更しようとしています。現在、新しい変数を表示しようとしているだけですが、成功していません。これは、私が現在配置している HTML フォームです。

<form name="contact" method="post" action="phpmailer.php" class="af-form" id="af-form">
<div class="af-outer af-required">
    <div class="af-inner">
        <label for="toemail" id="toemail_label">To Whom:</label>
        <input type="text" name="toemail" id="toemail" size="30" value="" class="text-input span8"/>
        <label class="error" for="toemail" id="toemail_error">To field is required.</label>
    </div>
</div>
<div class="af-outer af-required">
    <div class="af-inner">
        <label for="name" id="name_label">Your Name:</label>
        <input type="text" name="name" id="name" size="30" value="" class="text-input span8"/>
        <label class="error" for="name" id="name_error">Name is required.</label>
    </div>
</div>
<div class="af-outer af-required">
    <div class="af-inner">
        <label for="email" id="email_label">Your Email:</label>
        <input type="text" name="email" id="email" size="30" value="" class="text-input span8"/>
        <label class="error" for="email" id="email_error">Email is required.</label>
    </div>
</div>
<div class="af-outer af-required">
    <div class="af-inner">
        <label for="input-message" id="message_label">Your Message:</label>
        <textarea name="message" id="input-message" cols="30" class="text-input span8"></textarea>
        <label class="error" for="input-message" id="message_error">Message is required.</label>
    </div>
</div>
<div class="af-outer af-required">
    <div class="af-inner">
        <input type="submit" name="submit" class="form-button btn btn-large" id="submit_btn" value="Send Message!" />
    </div>
</div>

名前、電子メール、およびメッセージ フィールドが適切に取得され、受信した電子メールに入力されます。ただし、「toemail」フィールドは表示されません。これが私がphpmailerに使用しているprocess.phpです。

    <?php
if ((isset($_POST['toemail'])) && (strlen(trim($_POST['toemail'])) > 0)) {
    $toemail = stripslashes(strip_tags($_POST['toemail']));
} else {$toemail = 'No to address entered';}
if ((isset($_POST['name'])) && (strlen(trim($_POST['name'])) > 0)) {
    $name = stripslashes(strip_tags($_POST['name']));
} else {$name = 'No name entered';}
if ((isset($_POST['email'])) && (strlen(trim($_POST['email'])) > 0)) {
    $email = stripslashes(strip_tags($_POST['email']));
} else {$email = 'No email entered';}
if ((isset($_POST['message'])) && (strlen(trim($_POST['message'])) > 0)) {
    $message = stripslashes(strip_tags($_POST['message']));
} else {$message = 'No phone entered';}
ob_start();d
?>
<html>
<head>
<style type="text/css">
</style>
</head>
<body>
<table width="550" border="1" cellspacing="2" cellpadding="2">
  <tr bgcolor="#eeffee">
    <td>To Whom:</td>
    <td><?=$toemail;?></td>
  </tr>
  <tr bgcolor="#eeffee">
    <td>Name</td>
    <td><?=$name;?></td>
  </tr>
  <tr bgcolor="#eeeeff">
    <td>Email</td>
    <td><?=$email;?></td>
  </tr>
  <tr bgcolor="#eeffee">
    <td>Message</td>
    <td><?=$message;?></td>
  </tr>
</table>
</body>
</html>
<?
$body = ob_get_contents();

$to = 'personalemailtousefortesting.com';
$email = 'email@example.com';
$fromaddress = "you@example.com";
$fromname = "Online Contact";

require("phpmailer.php");

$mail = new PHPMailer();

$mail->From     = "mail@yourdomain.com";
$mail->FromName = "Contact Form";
$mail->AddAddress("mypersonalemailfortestingpurposes@gmail.com","Name 1"); // addresses here

$mail->WordWrap = 50;
$mail->IsHTML(true);

$mail->Subject  =  "Contact form submitted";
$mail->Body     =  $body;
$mail->AltBody  =  "This is the text-only body";

if(!$mail->Send()) {
    $recipient = 'mypersonalemailfortestingpurposes@gmail.com';
    $subject = 'Contact form failed';
    $content = $body;   
  mail($recipient, $subject, $content, "From: mail@yourdomain.com\r\nReply-To: $email\r\nX-Mailer: DT_formmail");
  exit;
}
?>

受信した電子メールには、名前、電子メール、およびメッセージ フィールドが正常に入力されますが、「toemail」入力に対して「入力されたアドレスにはありません」というフォール バック エラー メッセージが表示されます。

これが問題の第 1 号です。誰かがそれを見る必要がある場合は、私が使用している phpmailer.php を投稿します。最初に変数を定義する必要があるかどうかわかりません。

それが機能するようになったら、ドロップダウンリストで機能させる必要があるため、ユーザーは好きな人にメールを送信できません。

次に、それを実際の送信先アドレスとして設定する必要があります。送信目的で実際のアドレスを設定する方法がわかりません。私は私が変わると仮定します

    $mail->AddAddress("mypersonalemailfortestingpurposes@gmail.com","Name 1"); // addresses here

のようなものに...

    $mail->AddAddress($toemail,"Name 1"); // addresses here

...しかし、それは正しくない可能性があります。

あなたが提供できるどんな助けも素晴らしいでしょう。

私の phpmailer.php を見る必要がある場合は、それも投稿できます。

再度、感謝します、

・ロッキーコルトタムタム

4

1 に答える 1