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 を見る必要がある場合は、それも投稿できます。
再度、感謝します、
・ロッキーコルトタムタム