简体   繁体   English

无法使用phpmailer发送邮件

[英]Unable to send mail using phpmailer

can someone help me to find what is wrong with the following code that i used to send mail in php. 有人可以帮我找到以下我在php中发送邮件的代码有什么问题吗?

error_reporting(E_STRICT);
date_default_timezone_set('asia/kolkata');
require_once('class.phpmailer.php');
$mail = new PHPMailer(); 
$mail->IsSMTP(); 
$mail->SMTPDebug = 1; 
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'ssl'; 
$mail->Host = "smtp.gmail.com";
$mail->Port = 465; 
$mail->IsHTML(true);
$mail->Username = "manikandan@gmail.com";
$mail->Password = "mypassword";
$mail->From = ("manikandan@gmail.com");
$mail->SetFrom("manikandan");
$mail->Subject = "Test";
$mail->Body = "hello";
$mail->AddAddress("peter1991@gmail.com");
 if(!$mail->Send())
    {
    echo "Mailer Error: " . $mail->ErrorInfo;
    }
    else
    {
    echo "Message has been sent";
    }

?>

i am getting the following error:- 2015-01-05 04:32:10 Invalid address: manikandan i am using php 5.2.2 ,Apache 2.0 Handler in windows. 我收到以下错误: 2015-01-05 04:32:10 Invalid address: manikandan我在Windows中使用php 5.2.2和Apache 2.0 Handler。

setFrom expects an email address as the first parameter. setFrom希望将电子邮件地址作为第一个参数。 Try: 尝试:

$mail->setFrom('manikandan@gmail.com');

If you also want to set a proper name, use the second parameter 如果您还想设置一个专有名称,请使用第二个参数

$mail->setFrom('manikandan@gmail.com', 'John Smith');

http://phpmailer.github.io/PHPMailer/classes/PHPMailer.html#method_setFrom http://phpmailer.github.io/PHPMailer/classes/PHPMailer.html#method_setFrom

Also, I think you should be using the autoloader instead of including the PHPMailer class directly. 另外,我认为您应该使用自动加载器,而不是直接包含PHPMailer类。

try this: 尝试这个:

$mail->setFrom('manikandan@gmail.com', 'manikandan'); //setFrom expect email 

Full code: 完整代码:

<?php require 'PHPmailer/PHPMailerAutoload.php';

 //Create a new PHPMailer instance
 $mail = new PHPMailer();
//Tell PHPMailer to use SMTP
$mail->IsSMTP(); 
//Enable SMTP debugging
// 0 = off (for production use)
// 1 = client messages
// 2 = client and server messages
$mail->SMTPDebug = 2;
//Ask for HTML-friendly debug output
$mail->Debugoutput = 'html';
//Set the hostname of the mail server
$mail->Host = 'smtp.gmail.com';
//Set the SMTP port number - 587 for authenticated TLS, a.k.a. RFC4409 SMTP submission
$mail->Port = 465;
//Set the encryption system to use - ssl (deprecated) or tls
$mail->SMTPSecure = 'ssl';
//Whether to use SMTP authentication
$mail->SMTPAuth = true;
//Username to use for SMTP authentication - use full email address for gmail
$mail->Username = "manikandan@gmail.com";
//Password to use for SMTP authentication
$mail->Password = "mypassword";
//Set who the message is to be sent from
$mail->setFrom('manikandan@gmail.com', 'manikandan');
//Set an alternative reply-to address
$mail->addReplyTo('peter1991@gmail.com', 'peter');
//Set who the message is to be sent to
 $mail->addAddress('peter1991@gmail.com', 'peter1991');
 //Set the subject line
 $mail->Subject = 'Test';
//Read an HTML message body from an external file, convert referenced images to embedded,
 //convert HTML into a basic plain-text alternative body
  $mail->Body     = "Hi ,! Welcome to PHP mail function. \n\n  .";
//Replace the plain text body with one created manually
  $mail->AltBody = 'This is a plain-text message body';
 //Attach an image file
 //$mail->addAttachment('images/phpmailer_mini.gif');
 $mail->SMTPAuth = true;
 //send the message, check for errors
if (!$mail->send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message sent!";
}
?>  

To resolved this just turn on access for less secure app in your google account. 要解决此问题,只需在您的Google帐户中打开对安全性较低的应用的访问权限即可。 Hope this helps. 希望这可以帮助。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM