5

SOS我正在尝试向选定的电子邮件发送消息(通过表单发布),因此表单会将 student_id 传递给 php 脚本,该脚本获取相应的 student_email 地址(由 student_id 引用),我非常感谢您的帮助。这是我每次收到的错误消息,,

刷新无效:您必须提供至少一个收件人电子邮件地址。邮件未发送 PHP Mailer 错误:您必须提供至少一个收件人电子邮件地址。

编码:

<?php require_once("connection.php"); ?>
<?php require_once("functions.php"); ?>
<?php require("class.phpmailer.php");?>


<?php
 // START FORM PROCESSING
 if( isset($_POST['submit'])) { // Form has been submitted.
$student = trim(mysql_prep($_POST['student']));
$re_mail =$student["email"];
$mail = new PHPMailer();
$mail->PluginDir = './';
$mail->IsSMTP();
$mail->Port = 465;
$mail->Host = "smtp.gmail.com"; 
$mail->IsHTML(true); 
$mail->Mailer = "smtp";
$mail->SMTPSecure = "ssl";

$mail->SMTPAuth = true;
$mail->Username = "xxxxx@gmail.com";
$mail->Password = "xxxxxxxxxx";

$mail->SingleTo = true; // if you want to send mail to the users individually so that no recipients can see that who has got the same email.

$mail->From = "xxxxxx@gmail.com";
$mail->FromName = "xxxxxxxxx";

$mail->addAddress($re_mail );

$mail->Subject = "Testing PHP Mailer with localhost ";
$mail->Body = "Hi,This system is working perfectly.";

if(!$mail->Send())
echo "Message was not sent PHP Mailer Error: " . $mail->ErrorInfo;
else
echo "Message has been sent";}
?>



<html>
<body>
<form id="form1" name="form1" method="post" action="">
  <span id="spryselect1">
  <label>Email:
  <select name="student" id="student" tabindex="1">
<?php 
  $students = get_all_students();//this function works fine
  while ($student = mysql_fetch_array($students)) {
  echo "<option value=\"{$student["id"]}\"> {$student["first_name"]}</option> ";
 }
 ?>  
  </select>
  </label>
    <p>
    <label>
    <input type="submit" name="submit" id="submit" value="Submit" />
    </label>
  </p>
</form>

</body>
</html>

注意:我的function.php中有这个函数

function get_all_students() {
        global $connection;
        $query = "SELECT * 
                FROM student ORDER BY first_name ASC";
        $student_set = mysql_query($query, $connection);
        confirm_query($student_set);
        return $student_set;
    }
4

1 回答 1

2

终于我得到了答案,谢谢大家在这里提供帮助:)

<?php require_once("connection.php"); ?>
<?php require_once("functions.php"); ?>
<?php require("class.phpmailer.php");?>
<?php
// START FORM PROCESSING
if( isset($_POST['submit'])) { // Form has been submitted.

$student = trim(mysql_prep($_POST['student']));
$re_to_student=get_student_by_id($_POST['proposer']);

//this is another function i have in my function.php

$st_email = $re_to_student["email"];


$mail = new PHPMailer();
$mail->PluginDir = './';
$mail->IsSMTP();
$mail->Port = 465;
$mail->Host = "smtp.gmail.com"; 
$mail->IsHTML(true); 
$mail->Mailer = "smtp";
$mail->SMTPSecure = "ssl";

$mail->SMTPAuth = true;
$mail->Username = "mymail@gmail.com";
$mail->Password = "mypassword";

$mail->SingleTo = true; // if you want to send mail to the users individually so that no recipients can see that who has got the same email.

$mail->From = "mymail@gmail.com";
$mail->FromName = "myweb.com";

$mail->addAddress($st_email);

$mail->Subject = "test";
$mail->Body = "Hi,This system is working perfectly.";

if(!$mail->Send())
echo "Message was not sent PHP Mailer Error: " . $mail->ErrorInfo;
else
echo "Message has been sent";}


?>
于 2010-12-24T10:45:26.487 回答