我有一个Android HTML5 php应用程序,我想让用户通过Gmail或Yahoo向其他人发送电子邮件。这是我使用的代码
<?php
$smtp=$_GET["smtp"];
$youremail= $_GET["youremail"];
$emailpassword=$_GET["emailpassword"];
$companyemail=$_GET["companyemail"];
$messagetitle= $_GET["messagetitle"];
$messagetext=$_GET["messagetext"];
//this is a path to PHP mailer class you have dowloaded
include("class.phpmailer.php");
$emailChunks = explode(",", $companyemail);
for($i = 0; $i < count($emailChunks); $i++){
// echo "Piece $i = <br />";
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPDebug = 1; // errors and messages
//$mail->SMTPSecure = "tls"; // sets the prefix to the servier
$mail->Port = 587;
$mail->Host = "$smtp";
$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->Username = "$youremail"; // SMTP username
$mail->Password = "$emailpassword"; // SMTP password
$mail->From = "$youremail"; //do NOT fake header.
$mail->FromName = "$youremail";
$mail->AddAddress("$emailChunks[$i]"); // Email on which you want to send mail
$mail->AddReplyTo("$emailpassword", "Reply to"); //optional
$mail->IsHTML(true);
$mail->Subject = "$messagetitle";
$mail->Body = "$messagetext";
if(!$mail->Send())
{
echo $mail->ErrorInfo;
}else{
echo "email was sent";
}
}
?>
我得到的错误是: 地址无效:mysmtppassxxxxSMTP - &gt;错误:无法连接到服务器:连接超时(110)
SMTP错误:无法连接到SMTP主机。
SMTP错误:无法连接到SMTP主机
当我做var_dump($ email)时,我得到了
object(PHPMailer)#1 (53) {
["Priority"]=>
int(3)
["CharSet"]=>
string(10) "iso-8859-1"
["ContentType"]=>
string(9) "text/html"
["Encoding"]=>
string(4) "8bit"
["ErrorInfo"]=>
string(0) ""
["From"]=>
string(18) "me@gmail.com"
["FromName"]=>
string(18) "me@gmail.com"
["Sender"]=>
string(0) ""
["Subject"]=>
string(4) "test"
["Body"]=>
string(10) "my message"
["AltBody"]=>
string(0) ""
["WordWrap"]=>
int(0)
["Mailer"]=>
string(4) "smtp"
["Sendmail"]=>
string(18) "/usr/sbin/sendmail"
["PluginDir"]=>
string(0) ""
["ConfirmReadingTo"]=>
string(0) ""
["Hostname"]=>
string(0) ""
["MessageID"]=>
string(0) ""
["Host"]=>
string(14) "smtp.gmail.com"
["Port"]=>
int(587)
["Helo"]=>
string(0) ""
["SMTPSecure"]=>
string(3) "ssl"
["SMTPAuth"]=>
bool(true)
["Username"]=>
string(18) "me@gmail.com"
["Password"]=>
string(18) "me@gmail.com"
["Timeout"]=>
int(10)
["SMTPDebug"]=>
int(1)
["SMTPKeepAlive"]=>
bool(false)
["SingleTo"]=>
bool(false)
["SingleToArray"]=>
array(0) {
}
["LE"]=>
string(1) "
"
["DKIM_selector"]=>
string(9) "phpmailer"
["DKIM_identity"]=>
string(0) ""
["DKIM_domain"]=>
string(0) ""
["DKIM_private"]=>
string(0) ""
["action_function"]=>
string(0) ""
["Version"]=>
string(3) "5.1"
["smtp:private"]=>
NULL
["to:private"]=>
array(1) {
[0]=>
array(2) {
[0]=>
string(18) "jvkrneta@yahoo.com"
[1]=>
string(0) ""
}
}
["cc:private"]=>
array(0) {
}
["bcc:private"]=>
array(0) {
}
["ReplyTo:private"]=>
array(1) {
["me@gmail.com"]=>
array(2) {
[0]=>
string(18) "me@gmail.com"
[1]=>
string(8) "Reply to"
}
}
["all_recipients:private"]=>
array(1) {
["joovkrneta@yahoo.com"]=>
bool(true)
}
["attachment:private"]=>
array(0) {
}
["CustomHeader:private"]=>
array(0) {
}
["message_type:private"]=>
string(0) ""
["boundary:private"]=>
array(0) {
}
["language:protected"]=>
array(0) {
}
["error_count:private"]=>
int(0)
["sign_cert_file:private"]=>
string(0) ""
["sign_key_file:private"]=>
string(0) ""
["sign_key_pass:private"]=>
string(0) ""
["exceptions:private"]=>
bool(false)
}
答案 0 :(得分:1)
$mail->AddAddress()
部分的语法无效。
将其从$mail->AddAddress("$emailChunks[$i]");
更改为$mail->AddAddress("${emailChunks[$i]}");
基本上,解析器无法识别下标不是字符串的一部分。
本文更深入地解释了它:Can I subscript an array variable inside a double quoted PHP string?