跟大家講解下有關PHP發送郵件問題:郵件已發送,返回Invalid address:,相信小伙伴們對這個話題應該也很關注吧,現在就為小伙伴們說說PHP發送郵件問題:郵件已發送,返回Invalid address:,小編也收集到了有關PHP發送郵件問題:郵件已發送,返回Invalid address:的相關資料,希望大家看到了會喜歡。
如圖所示: 為什么會出現這樣的情況? 回復討論(解決方案)這些都是自定義提示,具體為什么,要看代碼。跟蹤下代碼。。。
IsSMTP(); // 啟用SMTP $mail->Host ="smtp.163.com"; //SMTP服務器 新浪郵箱 $mail->Port = 25; //郵件發送端口 $mail->SMTPAuth = true; //啟用SMTP認證 $mail->CharSet ="UTF-8"; //字符集 $mail->Encoding ="base64"; //編碼方式 $mail->Username ="yzhjtx@163.com"; //你的郵箱 $mail->Password ="hjtx123456"; //你的密碼 $mail->Subject = $subject; //郵件標題 $mail->From ="yzhjtx@163.com"; //發件人地址(也就是你的郵箱) $mail->FromName = $fromname; //發件人姓名 $address ="$user_mail";//收件人email $mail->AddAddress("$address");//添加收件人地址,昵稱 $mail->IsHTML(true); //支持html格式內容 $emailtype ="HTML"; //信件類型,文本:text;網頁:HTML $mail->Body = $content;//郵件內容 if(!$mail->Send()) { return false; } else { return true; //發送成功 } } }
這些都是自定義提示,具體為什么,要看代碼。跟蹤下代碼。。。
發郵件的代碼: IsSMTP(); // 啟用SMTP $mail->Host ="smtp.163.com"; //SMTP服務器 新浪郵箱 $mail->Port = 25; //郵件發送端口 $mail->SMTPAuth = true; //啟用SMTP認證 $mail->CharSet ="UTF-8"; //字符集 $mail->Encoding ="base64"; //編碼方式 $mail->Username ="yzhjtx@163.com"; //你的郵箱 $mail->Password ="hjtx123456"; //你的密碼 $mail->Subject = $subject; //郵件標題 $mail->From ="yzhjtx@163.com"; //發件人地址(也就是你的郵箱) $mail->FromName = $fromname; //發件人姓名 $address ="$user_mail";//收件人email $mail->AddAddress("$address");//添加收件人地址,昵稱 $mail->IsHTML(true); //支持html格式內容 $emailtype ="HTML"; //信件類型,文本:text;網頁:HTML $mail->Body = $content;//郵件內容 if(!$mail->Send()) { return false; } else { return true; //發送成功 } } }Invalid address 無效的地址
Invalid address 無效的地址
但是郵件已經發出去了,我的郵箱收到了新郵件你看看class.phpmailer.php里有沒有 Invalid address的提示,如果沒有,全項目搜索一下。 順藤摸瓜,看看哪里出了這樣的信息,就知道為什么了。基本調試方法!
看提示是email不正確。 如果能接收到郵件,但郵件服務器卻返回這個提示,則需要檢查class.phpmailer.php接受到的是什么狀態。
public function AddAddress($address, $name = '') { return $this->AddAnAddress('to', $address, $name); } private function AddAnAddress($kind, $address, $name = '') { if (!preg_match('/^(to|cc|bcc|ReplyTo)$/', $kind)) { echo 'Invalid recipient array: ' . kind; return false; } $address = trim($address); $name = trim(preg_replace('/[\r\n]+/', '', $name)); //Strip breaks and trim if (!self::ValidateAddress($address)) { $this->SetError($this->Lang('invalid_address').': '. $address); if ($this->exceptions) { throw new phpmailerException($this->Lang('invalid_address').': '.$address); } echo $this->Lang('invalid_address').': '.$address; return false; } ...
來源:php中文網