У меня есть приложение для Android HTML5 для Android, где я хочу, чтобы пользователи могли отправлять электронные письма другим людям с помощью Gmail или Yahoo. Это код, который я используюphp отправлять электронную почту с помощью SMTP
<?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 -> ОШИБКА: Не удалось подключиться к серверу: подключение истекло (110)
SMTP Error: МОГ не подключаться к узлу SMTP. SMTP Ошибка: Не удается подключиться к SMTP хост
, когда я делаю var_dump ($ электронной почты) Я получаю
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) "[email protected]"
["FromName"]=>
string(18) "[email protected]"
["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) "[email protected]"
["Password"]=>
string(18) "[email protected]"
["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) "[email protected]"
[1]=>
string(0) ""
}
}
["cc:private"]=>
array(0) {
}
["bcc:private"]=>
array(0) {
}
["ReplyTo:private"]=>
array(1) {
["[email protected]"]=>
array(2) {
[0]=>
string(18) "[email protected]"
[1]=>
string(8) "Reply to"
}
}
["all_recipients:private"]=>
array(1) {
["[email protected]"]=>
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)
}
Вам потребуется ** $ mail-> SMTPSecure = "SSL"; ** для Google, например. Некоторым SMTP-провайдерам необходим ssl для доступа. стоит попробовать. –
Я снова получаю ту же ошибку! –
как-то, если вы попробуете SSL на сервере nonSSL, тоже будет тайм-аут. с каким сервером вы пытаетесь подключиться? вы могли бы сделать дамп всех переменных ** кроме пользователя и пароля **? –