无法使用phpmailer发送邮件

时间:2015-01-05 04:50:19

标签: php sendmail phpmailer

有人可以帮我找到以下用于在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";
    }

?>

我收到以下错误: - 2015-01-05 04:32:10 Invalid address: manikandan 我在windows中使用php 5.2.2,Apache 2.0 Handler。

3 个答案:

答案 0 :(得分:2)

setFrom期望将电子邮件地址作为第一个参数。尝试:

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

如果您还想设置正确的名称,请使用第二个参数

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

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

另外,我认为您应该使用自动加载器而不是直接包含PHPMailer类。

答案 1 :(得分:0)

试试这个:

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

完整代码:

<?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!";
}
?>  

答案 2 :(得分:0)

要解决此问题,只需在您的Google帐户中启用不太安全的应用访问权限即可。希望这会有所帮助。