Ⅰ 請問一下,php配置SMTP怎麼弄
PHPMailer的獲取:
PHPMailer項目地址:PHPMailer 使用git命令克隆到本地,或直接在該項目頁面的右下方點擊「 Download ZIP 」即可獲取到完整的PHPMailer代碼包,再到本地解壓即可。
步驟一:使我們的QQ郵箱能夠發送郵件
這里怎麼說能夠發送郵件呢?其實我們的郵箱都是可以發送郵件的,但是要實現在我們的網站中發送郵件,那就要設置一下我們的QQ郵箱了,因為此時我們的網站現在是作為一個第三方客戶端存在的。
這里怎麼說能夠發送郵件呢?其實我們的郵箱都是可以發送郵件的,但是要實現在我們的網站中發送郵件,那就要設置一下我們的QQ郵箱了,因為此時我們的網站現在是作為一個第三方客戶端存在的
由於待會我們用到的是SMTP伺服器來發送,在這里建議把前面的兩項開啟了!當你點擊開啟的時候,它會提示:
<?phprequire_once("./functions.php");$flag=sendMail('[email protected]','lsgo在線通知','恭喜你成功加入LSGO實驗室,開啟你的學習之旅吧!');if($flag){echo"發送郵件成功!";
}else{echo"發送郵件失敗!";
}?>
Ⅱ 如何在phpcms中設置smtp驗證發送郵件
一、使用易網庫提供的企業郵箱
1.登錄phpcms後台,點擊「設置」——「郵箱配置」進入郵箱設置界面,如圖1
Ⅲ 用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 "發送成功!";
*/
?>
Ⅳ php 郵件如何配置附件的路徑
建議使用PHPEmailer發送郵件,使用非常簡單:
require('class.phpmailer.php');
$mail = new PHPMailer(); //實例化
$mail->IsSMTP(); // 啟用SMTP
$mail->Host = "smtp.163.com"; //SMTP伺服器 163郵箱例子
$mail->Port = 25; //郵件發送埠
$mail->SMTPAuth = true; //啟用SMTP認證
$mail->CharSet = "UTF-8"; //字元集
$mail->Encoding = "base64"; //編碼方式
$mail->Username = "[email protected]"; //你的郵箱
$mail->Password = "xxx"; //你的密碼
$mail->Subject = "xxx你好"; //郵件標題
$mail->From = "[email protected]"; //發件人地址(也就是你的郵箱)
$mail->FromName = "xxx"; //發件人姓名
$address = "[email protected]";//收件人email
$mail->AddAddress($address1, "xxx1"); //添加收件人1(地址,昵稱)
$mail->AddAttachment('xx.xls','我的附件.xls'); // 添加附件,並指定名稱
$mail->AddAttachment('xx1.xls','我的附件1.xls'); // 可以添加多個附件
$mail->IsHTML(true); //支持html格式內容
$mail->Body = '你好, <b>朋友</b>! <br/>這是一封郵件!'; //郵件主體內容
//發送
if(!$mail->Send()) {
echo "發送失敗: " . $mail->ErrorInfo;
} else {
echo "成功";
}
Ⅳ 使用php 的 smtp.class.php 發郵件。問題 SMTP Error: MAIL not accepted from server.
有一個PASSWORD的參數,不是郵箱的密碼,而是授權碼,去郵箱的設置里打開SMTP,設置一個授權碼,然後PASSWORD的參數寫入這個授權碼,就可以使用了
Ⅵ PHP項目使用smtp類,如何設置發件人名稱
下載一個PHPMailer來用吧,下面是代碼:
require_once "/phpmailer/class.phpmailer.php";
// 實例化 PHPMailer 類
$mail = new PHPMailer();
$mail->IsSMTP(); // send via SMTP
$mail->Subject = "XXX"; // 郵件主題
$mail->Body = $message_body; //郵件內容
$mail->Host = "smtp.163.com"; // SMTP servers
$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->Username = "username"; // SMTP username 注意:普通郵件認證不需要加 @域名
$mail->Password = "password"; // SMTP password
$mail->From = "[email protected]"; // 發件人郵箱
$mail->FromName = "發件人"; // 發件人
$mail->CharSet = "UTF-8"; // 這里指定字元集
$mail->Encoding = "base64";
$mail->IsHTML(true); // send as HTML
// 填入最基本的參數
$mail->AddAddress( "[email protected]" ); // 收件人
$mail->Send();
Ⅶ 如何使用php通過smtp發送郵件步驟
由於php沒有提供現成的smtp函數,卻提供了一個功能不甚靈活的mail()函數,這個函數需要伺服器配置上的支持,並且不支持smtp驗證,在很多場合無法正常的工作,因此不建議使用。
首先是使用telnet來連接本地的25埠,稍微熟悉點網路的人都知道smtp協議使用25埠,這也就是說,現在在連接本地的smtp伺服器。
<?php
require_once'Mail.php';
$conf['mail']=array(
'host'=>'xx.xx.xx.xx',//smtp伺服器地址,可以用ip地址或者域名
'auth'=>true,//true表示smtp伺服器需要驗證,false代碼不需要
'username'=>'tester',//用戶名
'password'=>'retset'//密碼
);
/***
*使用$headers數組,可以定義郵件頭的內容,比如使用$headers['Reply-To']可以定義回復地址
*通過這種方式,可以很方便的定製待發送郵件的郵件頭
***/
$headers['From']='[email protected]';//發信地址
$headers['To']='[email protected]';//收信地址
$headers['Subject']='testmailsendbyphp';//郵件標題
$mail_object=&Mail::factory('smtp',$conf['mail']);
$body=<<<MSG//郵件正文
helloworld!!!
MSG;
$mail_res=$mail_object->send($headers['To'],$headers,$body);//發送
if(Mail::isError($mail_res)){//檢測錯誤
die($mail_res->getMessage());
}
?>
Ⅷ 如何用php把提取到的html表單發郵件到指定郵箱
<?php
require_once('class.phpmailer.php');
$mail = new PHPMailer(); //實例化
$mail->IsSMTP(); // 啟用SMTP
$mail->Host = "smtp.qq.com"; //SMTP伺服器 以163郵箱為例子
$mail->Port = 25; //郵件發送埠
$mail->SMTPAuth = true; //啟用SMTP認證
$mail->CharSet = "UTF-8"; //字元集
$mail->Encoding = "base64"; //編碼方式
$mail->Username = "[email protected]"; //你的郵箱
$mail->Password = "XXXX"; //你的密碼
$mail->Subject = "你好"; //郵件標題
$mail->From = "[email protected]"; //發件人地址(也就是你的郵箱)
$mail->FromName = "久飛WEB"; //發件人姓名
$address = "[email protected]";//收件人email
$mail->AddAddress($address, "親");//添加收件人(地址,昵稱)
// 添加附件,並指定名稱
$mail->IsHTML(true); //支持html格式內容
$mail->Body = '你好, <b>朋友</b>! <br/>這是一封來自<a href="http://www.jiufei.cc" target="_blank">jiufei.cc</a>的郵件!<br/>';
//發送
if(!$mail->Send()) {
echo "發送失敗: " . $mail->ErrorInfo;
} else {
$_SESSION['ip'] = get_client_ip();
$_SESSION['time'] = time();
echo "1";
}
function get_client_ip() {
if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))
$ip = getenv("HTTP_CLIENT_IP");
else
if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))
$ip = getenv("HTTP_X_FORWARDED_FOR");
else
if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
$ip = getenv("REMOTE_ADDR");
else
if (isset ($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))
$ip = $_SERVER['REMOTE_ADDR'];
else
$ip = "unknown";
return ($ip);
}
?>