我正在尝试建立一个邮件系统,用户可以在其中选择一组特定的人来发送电子邮件。我现在面临的是我无法发送电子邮件。
我曾尝试$row['email']
,但它会显示错误消息,如
致命错误:无法使用stdClass类型的对象作为数组
我也尝试了$row->$email
,未发现任何错误,但没有发送电子邮件。
注意:我更喜欢使用Gmail SMTP,因为我没有设置托管服务器,而且我没有时间再这样做了。请提出建议。
来自 doMailingSystem.php ,
<?php
include 'dbFunctions.php';
include "mailingSystem.php";
require_once('class.phpmailer.php');
require_once('PHPMailerAutoload.php');
extract($_POST);
$session_id = date('Y-m-d', strtotime($session_id));
$sql = "SELECT student_profile.email FROM student_profile, booking_history WHERE student_profile.student_id = booking_history.student_id and booking_history.booking_date_session LIKE '$session_id%' ";
//print $sql;
$result = mysqli_query($link, $sql);
while ($row = mysqli_fetch_object($result)) {
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->CharSet = "UTF-8";
$mail->SMTPSecure = 'tls';
$mail->Host = 'smtp.gmail.com';
$mail->Port = 587;
$mail->Username = 'usernamer@gmail.com';
$mail->Password = 'password';
$mail->SMTPAuth = true;
$mail->From = 'username@gmail.com';
$mail->FromName = 'X Team';
$mail->AddAddress($row['email']);
$mail->IsHTML(true);
$mail->Subject = $_POST['subject'];
$mail->AltBody = "To view the message, please use an HTML compatible email viewer!";
$mail->Body = $_POST['message'];
}
?>
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body>
<p>
<?php
// echo $statusMessage;
?>
</p>
</body>
</html>
答案 0 :(得分:1)
你忘了给你发消息:
...
$mail->AltBody = "To view the message, please use an HTML compatible email viewer!";
$mail->Body = $_POST['message'];
$mail->send();
^^^^^^^^^^^^^ Here
您可能想要检查电子邮件地址是否符合您的预期。
答案 1 :(得分:1)
在mysqli_fetch_assoc()
声明中使用mysqli_fetch_object()
代替while
。然后,您可以将其用作array
$row['email'];