mail() sendmail QQ郵箱
開發環境用的wamp,下載並安裝好了sendmail程式,按網上的說法也改好了php.ini和sendmail.ini
使用foxmail 7.1建立了自己QQ郵箱的賬戶,開啟了POP3/SMTP服務。更改發件伺服器為POP3,使用和收件伺服器相同的身分識別驗證。結果還是報錯:Warning: mail(): SMTP server response: 503 Error: need EHLO and AUTH first ! in F:\PHP\wamp\www\mail.php on line 8
不知道哪個地方不對,請會的人指教下。謝謝!!!
回複討論(解決方案)
可以嘗試phpmailer
$path = realpath(dirname(__FILE__)).'/../libraries/Mail.php';include("$path");; $mail= new Mail(); //建立新物件 $mail->IsSMTP(); //?定使用SMTP方式寄信 $mail->SMTPAuth = true; //?定SMTP需要?? $mail->SMTPSecure = "ssl"; // Gmail的SMTP主?需要使用SSL?? $mail->Host = "smtp.gmail.com"; //Gamil的SMTP主? $mail->Port = 465; //Gamil的SMTP主?的SMTP埠位?465埠。 $mail->CharSet = "UTF-8"; //?定?件?? $mail->Username = "onlyfortestlzz@gmail.com"; //?定???? $mail->Password = "abcde"; //?定??密? $mail->From = "onlyfortestlzz@gmail.com"; //?定寄件者信箱 $mail->FromName = "工作人?"; //?定寄件者姓名 $mail->Subject = "PHPMailer ??信件"; //?定?件?? $mail->Body = "你好"; //?定?件?容 $mail->IsHTML(true); //?定?件?容?HTML $mail->AddAddress($this->input->post('backemail'), $value->username); //?定收件者?件及名? if(!$mail->Send()) { echo 'ok'; }
建議使用pear,安裝下面三個:
(1),Mail
(2),Net_SMTP
(3),Mail_Mime
mail()函數不成功是因為沒有
$mail->Host = "smtp.gmail.com"; //Gamil的SMTP主?
也就是不是從某個賬戶發送的。
這個函數發送的郵件被接收伺服器認為是垃圾郵件扔掉了。注意,郵箱中的垃圾郵件並不是很垃圾。而這裡直接扔掉了。
php都是使用phpmailer,少數使用pear。
mail 函數只能使用自己配置的、不需使用者認證的 SMTP 伺服器
如果你的 SMTP 未經電郵聯盟認可,則發出的郵件將被作為垃圾郵件處理
可以嘗試phpmailer
$path = realpath(dirname(__FILE__)).'/../libraries/Mail.php';include("$path");; $mail= new Mail(); //建立新物件 $mail->IsSMTP(); //?定使用SMTP方式寄信 $mail->SMTPAuth = true; //?定SMTP需要?? $mail->SMTPSecure = "ssl"; // Gmail的SMTP主?需要使用SSL?? $mail->Host = "smtp.gmail.com"; //Gamil的SMTP主? $mail->Port = 465; //Gamil的SMTP主?的SMTP埠位?465埠。 $mail->CharSet = "UTF-8"; //?定?件?? $mail->Username = "onlyfortestlzz@gmail.com"; //?定???? $mail->Password = "abcde"; //?定??密? $mail->From = "onlyfortestlzz@gmail.com"; //?定寄件者信箱 $mail->FromName = "工作人?"; //?定寄件者姓名 $mail->Subject = "PHPMailer ??信件"; //?定?件?? $mail->Body = "你好"; //?定?件?容 $mail->IsHTML(true); //?定?件?容?HTML $mail->AddAddress($this->input->post('backemail'), $value->username); //?定收件者?件及名? if(!$mail->Send()) { echo 'ok'; } 謝謝。使用PHPMAILER已解決。