PHPMailer出現Called Mail() without being connected錯誤

來源:互聯網
上載者:User
用PHPMailer發送郵件,根據例子敲了如下代碼

require("class.phpmailer.php"); //下載的檔案必須放在該檔案所在目錄$mail = new PHPMailer(); //建立郵件發送類//$address = $_POST['address'];$mail->IsSMTP(); // 使用SMTP方式發送$mail->Host = "mail.qq.com";// 您的企業郵局網域名稱$mail->Port = '25';//$mail->SMTPAuth = true; // 啟用SMTP驗證功能$mail->Username = "497045318@qq.com"; // 郵局使用者名稱(請填寫完整的email地址)$mail->Password = "******"; // 郵局密碼$mail->From = "497045318@qq.com"; //郵件寄件者email地址$mail->FromName = "Frank Tung";$mail->AddAddress("tongzhenhang@qq.com");//收件者地址,可以替換成任何想要內送郵件的email信箱,格式是AddAddress("收件者email","收件者姓名")//$mail->AddReplyTo("", "");//$mail->AddAttachment("/var/tmp/file.tar.gz"); // 添加附件//$mail->IsHTML(true); // set email format to HTML //是否使用HTML格式$mail->Subject = "PHPMailer測試郵件"; //郵件標題$mail->Body = "Hello,這是測試郵件"; //郵件內容$mail->AltBody = "This is the body in plain text for non-HTML mail clients"; //附加資訊,可以省略if(!$mail->Send()){echo "郵件發送失敗. 

";echo "錯誤原因: " . $mail->ErrorInfo;exit;}echo "郵件發送成功";


結果出現
郵件發送失敗.

錯誤原因: The following From address failed: 497045318@qq.com : Called Mail() without being connected

我嘗試把class.phpmailer.php中的
/**
* Method to send mail: ("mail", "sendmail", or "smtp").
* @var string
*/
var $Mailer = 'mail';

改成
var $Mailer = 'smtp';

此錯誤依舊。

我再去搜尋QQ的smtp,網頁如下
http://kf.qq.com/faq/120322fu63YV130422nqIrqu.html
將$mail->Host = "mail.qq.com";
改成
$mail->Host = "smtp.qq.com";
$mail->Port = '465';
還是報錯。
改成
$mail->Port = '587';
報錯資訊:
郵件發送失敗.
錯誤原因: The following From address failed: 497045318@qq.com : MAIL not accepted from server,530,Must issue a STARTTLS command first.
SMTP server error: Must issue a STARTTLS command first.
SMTP server error: Must issue a STARTTLS command first.

我Youtube了一個教學視頻
InMotion Hosting - How to use PHPMailer
https://www.youtube.com/watch?v=JltHLzkghmY
My Code與他基本一樣,與之唯一的區別是我在本地電腦localhost,而不是在伺服器上(我還沒個人的伺服器)我想是不是與這個因素相關。

我想請教各位這是什麼原因。十分感謝!如果還有什麼好的方法/代碼可以用php發送郵件,也請教各位了!


回複討論(解決方案)

原因已經找到了。
因為當時在測試功能時候,由於一直各種跳錯,我就去一行行排錯。

//$mail->SMTPAuth = true; // 啟用SMTP驗證功能

在排錯時候,我把上面一行注釋掉了,最後忘了把注釋去掉。
所以這一行不可或缺
  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.