本文目錄一覽:
- 1、php郵件發送類smtp.class.php在服務器上發送失敗
- 2、php用smtp 發送郵件失敗提示無法連接到主機
- 3、使用php 的 smtp.class.php 發郵件。問題 SMTP Error: MAIL not accepted from server.
- 4、請問這個發送郵箱PHP代碼要怎麼寫
- 5、phpemail中沒有class.smtp.php啊,怎麼引入
php郵件發送類smtp.class.php在服務器上發送失敗
開啟php配置文件的兩個擴展:extension=php_sockets.dll和extension=php_openssl.dll,將前面的兩個分號去掉就行。
這兩個函數呢 然後重啟服務
php用smtp 發送郵件失敗提示無法連接到主機
PHPMailer是一個郵件發送插件有很多朋友使用它來發郵件,但也有不少朋友在使用期PHPMailer發郵件時就碰到”SMTP 錯誤:無法連接到 SMTP 主機“錯誤了,出現這種問題我們從幾個點來分享,一個是郵箱配置有問題,另一個是我們的php.ini環境中有些函數沒開啟導致的,下面我來給各位詳細介紹一下問題的排除技巧。
原因分析
出現這個問題說明無法解析 SMTP 主機 主機 id 的名稱。
解決辦法,這個要看郵箱支付不支持pop3發送與接收郵件這個可以郵件官方看看,如QQ郵件
phpmailer error SMTP Error: Could not connect to SMTP host Could not instantiate mail function
弄了半天,原來是不同郵件系統要求的smtp請求不同,但是都允許大寫,有些不支持小寫,比如網易,騰訊的郵箱。
原來的設置
$mail-SMTPAuth = true;
$mail-Mailer = “smtp”;
$mail-Host = “smtp.qq.com”;
$mail-Port = 25; //設置郵件服務器的端口,默認為25
$mail-Username = “8515888@qq.com”;
$mail-Password = “xxxxxxxxxx”;
把smtp改成大寫就可以了
$mail-Mailer = “SMTP”;
分析問題2,
還有大家就是使用了空間而不是服務器這樣有可能像fsockopen、pfsockopen都禁用了,因為phpmailer需要使用fsockopen、pfsockopen才可以發郵件所以就會有問題了。
解決辦法
找到class.smtp.php文件,大約在文件的128行吧,有這樣一段代碼:
// connect to the smtp server
$this-smtp_conn = @fsockopen($host, // the host of the server
$port, // the port to use
$errno, // error number if any
$errstr, // error message if any
$tval); // give up after ? secs
方法1:將fsockopen函數替換成pfsockopen函數
因為pfsockopen的參數與fsockopen基本一致,所以只需要將@fsockopen替換成@pfsockopen就可以了。
方法2:使用stream_socket_client函數
一般fsockopen()被禁,pfsockopen也有可能被禁,所以這裡介紹另一個函數stream_socket_client()。
stream_socket_client的參數與fsockopen有所不同,所以代碼要修改為:
$this-smtp_conn = stream_socket_client(“tcp://”.$host.”:”.$port, $errno, $errstr, $tval);
這樣就可以了。
使用php 的 smtp.class.php 發郵件。問題 SMTP Error: MAIL not accepted from server.
有一個PASSWORD的參數,不是郵箱的密碼,而是授權碼,去郵箱的設置里打開SMTP,設置一個授權碼,然後PASSWORD的參數寫入這個授權碼,就可以使用了
請問這個發送郵箱PHP代碼要怎麼寫
?php
require_once “Smtp.class.php”;
//******************** 配置信息 ********************************
$smtpserver = “smtp.126.com”;//SMTP服務器
$smtpserverport =25;//SMTP服務器端口
$smtpusermail = “new2008oh@126.com”;//SMTP服務器的用戶郵箱
$smtpemailto = $_POST[‘toemail’];//發送給誰
$smtpuser = “new2008oh”;//SMTP服務器的用戶帳號(或填寫new2008oh@126.com,這項有些郵箱需要完整的)
$smtppass = “您的郵箱密碼”;//SMTP服務器的用戶密碼
$mailtitle = $_POST[‘title’];//郵件主題
$mailcontent = “h1”.$_POST[‘content’].”/h1″;//郵件內容
$mailtype = “HTML”;//郵件格式(HTML/TXT),TXT為文本郵件
//************************ 配置信息 ****************************
$smtp = new Smtp($smtpserver,$smtpserverport,true,$smtpuser,$smtppass);//這裡面的一個true是表示使用身份驗證,否則不使用身份驗證.
$smtp-debug = false;//是否顯示發送的調試信息
$state = $smtp-sendmail($smtpemailto, $smtpusermail, $mailtitle, $mailcontent, $mailtype);
echo “div style=’width:300px; margin:36px auto;'”;
if($state==””){
echo “對不起,郵件發送失敗!請檢查郵箱填寫是否有誤。”;
echo “a href=’index.html’點此返回/a”;
exit();
}
echo “恭喜!郵件發送成功!!”;
echo “a href=’index.html’點此返回/a”;
echo “/div”;
?
phpemail中沒有class.smtp.php啊,怎麼引入
你好,php中引入方式有兩種
1、用include,require直接在文件頭部引入
2、藉助框架中的自帶函數引入,如thinkPHP5,可以直接用use
希望對你有幫助!
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/301639.html