㈠ php輸入郵箱,最後如何顯示郵箱的類型
通過正則匹配獲取到@後面的後綴。
然後就是根據寫好的字典進行選擇,比如qq. com 就是騰訊郵箱,如果是126.com 就是網易郵箱,如此類推。
㈡ php發郵件的Mail函數或者phpmailer類問題
phpmailer有返回值的,也有具體的錯誤,發送不成功,肯定是有原因的。還有設置發送郵件的smtp伺服器用163的比較穩定,當然用公司自己的伺服器發也可以,不過要確保公司的伺服器開啟了smtp服務。
還有問下公司的網管或運維看看是不是做了什麼網路限制。
㈢ php發送郵件的問題:php怎麼才能發送郵件呢使用自帶的函數,應該怎樣設置相應的郵件伺服器
首先,我不想給phpmailer這個東西做廣告,但是我確實使用的這個東西,很費解。
下載一個phpmailer類,裡面主要的是三個文件class.phpmailer.phpclass.pop3.phpclass.smtp.php
將這三個文件放到同一個文件夾.eg:papmailer
申請一個網路郵件伺服器(我用的是163伺服器)
編寫發送郵件代碼如下
/**
*發送郵件
*@paramunknown_type$sendto_email接收人Email
*@paramunknown_type$subject郵件主題
*@paramunknown_type$body郵件內容
*@paramunknown_type$user_name接受人姓名
*/
functionsend_email($sendto_email,$subject,$body,$user_name){
require_once"phpmailer/class.phpmailer.php";
$mail=newPHPMailer();//創建類對象
$mail->IsSMTP();
$mail->Host="smtp.163.com";//SMTPservers使用163伺服器,郵件smtp伺服器
$mail->SMTPAuth=true;//turnonSMTPauthentication
$mail->Username="你申請的163郵箱帳號";//SMTPusername注意:普通郵件認證不需要加@域名
$mail->Password="163郵箱密碼";//SMTPpassword
$mail->From="發件人郵箱,可以使用上面163郵箱";//發件人郵箱
$mail->FromName="發件人名稱,自己隨意命名";//發件人
$mail->CharSet="utf8";//這里指定字元集!
$mail->Encoding="base64";
$mail->AddAddress($sendto_email,$user_name);//收件人郵箱和姓名
$mail->IsHTML(true);//sendasHTML
//郵件主題
$mail->Subject=$subject;
//郵件內容
$mail->Body=$body;
$mail->AltBody="text/html";
if(!$mail->Send()){
return$mail->ErrorInfo;
}else{
returntrue;
}
}
㈣ php郵件類報錯Language string failed to load: smtp_connect_failed
那肯定是因為伺服器上配置和本地不一樣。你檢查下伺服器上curl擴展是否打開?
還有,我使用class.phpmailer.php,從來不載入require("class.smtp.php");
㈤ php郵箱類執行到smtp_ok()執行不下去,為什麼
這個問題是 fgets($this->sock,512)超時問題,你可以在運行這個方法之前 多次輸出
ehco fgets($this->sock,512); 看看其輸出的行數 因為fgets 沒輸出一次,其指針向下移動一位,而你的 應該是一直在輸出 從而超時 再不行 你就問張立明去啊
㈥ PHP郵件發送類怎麼弄,我的出錯了,幫我看下
if(mysql_insert_id()){//寫入成功,發郵件
跟這個語句對於的大括弧呢??
你這個錯誤很明顯,告訴你是缺少閉合結束符,一般就是指大括弧
㈦ 用php郵件類發郵件是出現錯誤代碼500,怎麼解決
500應該是伺服器問題
㈧ php編程---email功能
*/
set_time_limit(120);
class smtp_mail
{
var $host; //主機
var $port; //埠 一般為25
var $user; //SMTP認證的帳號
var $pass; //認證密碼
var $debug = false; //是否顯示和伺服器會話信息?
var $conn;
var $result_str; //結果
var $in; //客戶機發送的命令
var $from; //源信箱
var $to; //目標信箱
var $subject; //主題
var $body; //內容
function smtp_mail($host,$port,$user,$pass,$debug=false)
{
$this->host = $host;
$this->port = $port;
$this->user = base64_encode($user);
$this->pass = base64_encode($pass);
$this->debug = $debug;
$this->socket = socket_create (AF_INET, SOCK_STREAM, SOL_TCP); //具體用法請參考手冊
if($this->socket)
{
$this->result_str = "創建SOCKET:".socket_strerror(socket_last_error());
$this->debug_show($this->result_str);
}
else
{
exit("初始化失敗,請檢查您的網路連接和參數");
}
$this->conn = socket_connect($this->socket,$this->host,$this->port);
if($this->conn)
{
$this->result_str = "創建SOCKET連接:".socket_strerror(socket_last_error());
$this->debug_show($this->result_str);
}
else
{
exit("初始化失敗,請檢查您的網路連接和參數");
}
$this->result_str = "伺服器應答:<font color=#cc0000>".socket_read ($this->socket, 1024)."</font>";
$this->debug_show($this->result_str);
}
function debug_show($str)
{
if($this->debug)
{
echo $str."<p>\r\n";
}
}
function send($from,$to,$subject,$body)
{
if($from == "" ¦ ¦ $to == "")
{
exit("請輸入信箱地址");
}
if($subject == "") $sebject = "無標題";
if($body == "") $body = "無內容";
$this->from = $from;
$this->to = $to;
$this->subject = $subject;
$this->body = $body;
$All = "From:".$this->from."\n";
$All .= "To:".$this->to."\n";
$All .= "Subject:".$this->subject."\n";
$All .= $this->body;
/*
如過把$All的內容再加處理,就可以實現發送MIME郵件了
不過還需要加很多程序
*/
//以下是和伺服器會話
$this->in = "EHLO HELO\r\n";
$this->docommand();
$this->in = "AUTH LOGIN\r\n";
$this->docommand();
$this->in = $this->user."\r\n";
$this->docommand();
$this->in = $this->pass."\r\n";
$this->docommand();
$this->in = "MAIL FROM:".$this->from."\r\n";
$this->docommand();
$this->in = "RCPT TO:".$this->to."\r\n";
$this->docommand();
$this->in = "DATA\r\n";
$this->docommand();
$this->in = $All."\r\n.\r\n";
$this->docommand();
$this->in = "QUIT\r\n";
$this->docommand();
//結束,關閉連接
}
function docommand()
{
socket_write ($this->socket, $this->in, strlen ($this->in));
$this->debug_show("客戶機命令:".$this->in);
$this->result_str = "伺服器應答:<font color=#cc0000>".socket_read ($this->socket, 1024)."</font>";
$this->debug_show($this->result_str);
}
}
//這個是我做的測試,我用的是smtp.163.com,那你的信箱也必須是163.com的,要不人家不讓你發!!
//你用這個類的時候你修改成你自己的信箱就可以了
$smtp = new smtp_mail("smtp.163.com","25","你的163.com的帳號","你的密碼");
//如果你需要顯示會話信息,請將上面的修改成
//$smtp = new smtp_mail("smtp.163.com","25","你的163.com的帳號","你的密碼",true);
$smtp->send("你的163.com的帳號@163.com","目標地址","你好","你好");
㈨ 求php 發送郵件的代碼
php裡面有mail函數用於發送郵件,具體你可以查一下手冊,如果遇到問題再回來問。
以前來網路提問,很奇怪為什麼老是有人去搜索一些網頁文章來帖給我,這幾天有閑心作答,才很詫異地發現,原來真的有很多人提了問題出來,等人去搜索答案回來貼。
這是你和你們同學約好的刷分辦法嗎?
㈩ 用PHP發送電子郵件的方法
<?
/*
* 郵件發送類
*/
class smail {
//您的SMTP 伺服器供應商,可以是域名或IP地址
var $smtp = "";
//SMTP需要要身份驗證設值為 1 不需要身份驗證值為 0,現在大多數的SMTP服務商都要驗證,如不清楚請與你的smtp 服務商聯系。
var $check = 1;
//您的email帳號名稱
var $username = "";
//您的email密碼
var $password = "";
//此email 必需是發信伺服器上的email
var $s_from = "";
/*
* 功能:發信初始化設置
* $from 你的發信伺服器上的郵箱
* $password 你的郵箱密碼
* $smtp 您的SMTP 伺服器供應商,可以是域名或IP地址
* $check SMTP需要要身份驗證設值為 1 不需要身份驗證值為 0,現在大多數的SMTP服務商都要驗證
*/
function smail ( $from, $password, $smtp, $check = 1 ) {
if( preg_match("/^[^\d\-_][\w\-]*[^\-_]@[^\-][a-zA-Z\d\-]+[^\-](\.[^\-][a-zA-Z\d\-]*[^\-])*\.[a-zA-Z]{2,3}/", $from ) ) {
$this->username = substr( $from, 0, strpos( $from , "@" ) );
$this->password = $password;
$this->smtp = $smtp ? $smtp : $this->smtp;
$this->check = $check;
$this->s_from = $from;
}
}
/*
* 功能:發送郵件
* $to 目標郵箱
* $from 來源郵箱
* $subject 郵件標題
* $message 郵件內容
*/
function send ( $to, $from, $subject, $message ) {
//連接伺服器
$fp = fsockopen ( $this->smtp, 25, $errno, $errstr, 60);
if (!$fp ) return "聯接伺服器失敗".__LINE__;
set_socket_blocking($fp, true );
$lastmessage=fgets($fp,512);
if ( substr($lastmessage,0,3) != 220 ) return "錯誤信息1:$lastmessage".__LINE__;
//HELO
$yourname = "YOURNAME";
if($this->check == "1") $lastact="EHLO ".$yourname."\r\n";
else $lastact="HELO ".$yourname."\r\n";
fputs($fp, $lastact);
$lastmessage == fgets($fp,512);
if (substr($lastmessage,0,3) != 220 ) return "錯誤信息2:$lastmessage".__LINE__;
while (true) {
$lastmessage = fgets($fp,512);
if ( (substr($lastmessage,3,1) != "-") or (empty($lastmessage)) )
break;
}
//身份驗證
if ($this->check=="1") {
//驗證開始
$lastact="AUTH LOGIN"."\r\n";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 334) return "錯誤信息3:$lastmessage".__LINE__;
//用戶姓名
$lastact=base64_encode($this->username)."\r\n";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 334) return "錯誤信息4:$lastmessage".__LINE__;
//用戶密碼
$lastact=base64_encode($this->password)."\r\n";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != "235") return "錯誤信息5:$lastmessage".__LINE__;
}
//FROM:
$lastact="MAIL FROM: <". $this->s_from . ">\r\n";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 250) return "錯誤信息6:$lastmessage".__LINE__;
//TO:
$lastact="RCPT TO: <". $to ."> \r\n";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 250) return "錯誤信息7:$lastmessage".__LINE__;
//DATA
$lastact="DATA\r\n";
fputs($fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 354) return "錯誤信息8:$lastmessage".__LINE__;
//處理Subject頭
$head="Subject: $subject\r\n";
$message = $head."\r\n".$message;
//處理From頭
$head="From: $from\r\n";
$message = $head.$message;
//處理To頭
$head="To: $to\r\n";
$message = $head.$message;
//加上結束串
$message .= "\r\n.\r\n";
//發送信息
fputs($fp, $message);
$lastact="QUIT\r\n";
fputs($fp,$lastace);
fclose($fp);
return 0;
}
}
/*發送示例
$sm = new smail( "用戶名@163.com", "密碼", "smtp.163.com" );
$end = $sm->send( "目標郵箱", "來源郵箱", "這是標題", "這是郵件內容" );
if( $end ) echo $end;
else echo "發送成功!";
*/
?>