请帮我解决这个问题。我有一个这样的联系表格:
<div class="contact form">
<form action="" method="get" class="formofcontact"/>
<p>To:
<label>
<select name="select" size="1" id="select">
<option>Select</option>
<?php
$mvo=new membersVO();
$mdao=new membersDAO();
$list=$mdao->fetchAll('onlypublished');
foreach($list as $members){?>
<option value="<?php echo "$members->email1" . "," . "$members->email2" . "," . "$members->email3";?>"><?php echo $members->name;?></option>
<?php
}
?>
</select>
</label></p>
<p>From:
<label>
<input type="text" name="textfield2" id="textfield2" /> </label>
</p>
<p>Subject:
<label>
<input type="text" name="textfield3" id="textfield3" />
</label>
</p>
<p>Message:</p>
<p>
<label>
<textarea name="textarea" id="textarea" cols="45" rows="5"> </textarea> </label>
</p>
<p>
<label>
<input type="submit" name="button" id="button" value="Send" />
</label>
</p>
</form>
现在,如果有人想向澳大利亚代表发送电子邮件,那么他们会选择澳大利亚,并在文本框中写下他们的电子邮件。现在我感到困惑的是将电子邮件发送到观众选择的相应电子邮件地址。
请大家帮帮我。
答案 0 :(得分:2)
请务必验证输入。确保您的表单不能用于发送垃圾邮件。
答案 1 :(得分:1)
以下是几点
1-在您的method="POST"
中使用<form>
而不是GET来发送电子邮件等大数据。
2-不要将实际的电子邮件地址放在<option>
的值中,以便将这些电子邮件显示给SPAM电子邮件抓取工具,只需将成员的ID或名称本身放在其中:
foreach($list as $member) {
echo '<option value="'.$member->id.'">'.$member->name.'</option>';
}
然后当您收到数据时找到该成员并获取其电子邮件:
$selectedMember = null;
foreach($list as $member) {
if( $member->id == $_POST['select'] ) {
$selectedMember = $member;
}
}
if( $selectedMember === null ) die( 'invalid member' );
并发送电子邮件:
if(!@mail($selectedMember->email1, $subject, $body,
"Return-Path: <$replyEmail>\nFrom: $name <$replyEmail>") )
{
echo 'error';
} else {
echo 'message sent successfully';
}