❶ 誰能寫一個用php發送郵件的類,同時能介紹以下PHP發送郵件的原理嗎
<?php
require("class.phpmailer.php"); //下載的文件必須放在該文件所在目錄
$mail = new PHPMailer(); //建立郵件發送類
$address ="[email protected]";
$mail->IsSMTP(); // 使用SMTP方式發送
$mail->Host = "smtp.qq.com"; // 您的企業郵局域名
$mail->SMTPAuth = true; // 啟用SMTP驗證功能
$mail->Username = "[email protected]"; // 郵局用戶名(請填寫完整的email地址)
$mail->Password = "***********"; // 郵局密碼
$mail->Port=25;
$mail->From = "[email protected]"; //郵件發送者email地址
$mail->FromName = "liuyoubin";
$mail->AddAddress("$address", "a");//收件人地址,可以替換成任何想要接收郵件的email信箱,格式是AddAddress("收件人email","收件人姓名")
//$mail->AddReplyTo("", "");
//$mail->AddAttachment("/var/tmp/file.tar.gz"); // 添加附件
//$mail->IsHTML(true); // set email format to HTML //是否使用HTML格式
$mail->Subject = "PHPMailer測試郵件"; //郵件標題
$mail->Body = "Hello,這是測試郵件"; //郵件內容
$mail->AltBody = "This is the body in plain text for non-HTML mail clients"; //附加信息,可以省略
if(!$mail->Send())
{
echo "郵件發送失敗. <p>";
echo "錯誤原因: " . $mail->ErrorInfo;
exit;
}
echo "郵件發送成功";
/*************************************************
附件:
phpmailer 中文使用說明(簡易版)
A開頭:
$AltBody--屬性
出自:PHPMailer::$AltBody
文件:class.phpmailer.php
說明:該屬性的設置是在郵件正文不支持HTML的備用顯示
AddAddress--方法
出自:PHPMailer::AddAddress(),文件:class.phpmailer.php
說明:增加收件人。參數1為收件人郵箱,參數2為收件人稱呼。例 AddAddress("[email protected]","eb163"),但參數2可選,AddAddress([email protected])也是可以的。
函數原型:public function AddAddress($address, $name = '') {}
AddAttachment--方法
出自:PHPMailer::AddAttachment()
文件:class.phpmailer.php。
說明:增加附件。
參數:路徑,名稱,編碼,類型。其中,路徑為必選,其他為可選
函數原型:
AddAttachment($path, $name = '', $encoding = 'base64', $type = 'application/octet-stream'){}
AddBCC--方法
出自:PHPMailer::AddBCC()
文件:class.phpmailer.php
說明:增加一個密送。抄送和密送的區別請看[SMTP發件中的密送和抄送的區別] 。
參數1為地址,參數2為名稱。注意此方法只支持在win32下使用SMTP,不支持mail函數
函數原型:public function AddBCC($address, $name = ''){}
AddCC --方法
出自:PHPMailer::AddCC()
文件:class.phpmailer.php
說明:增加一個抄送。抄送和密送的區別請看[SMTP發件中的密送和抄送的區別] 。
參數1為地址,參數2為名稱注意此方法只支持在win32下使用SMTP,不支持mail函數
函數原型:public function AddCC($address, $name = '') {}
AddCustomHeader--方法
出自:PHPMailer::AddCustomHeader()
文件:class.phpmailer.php
說明:增加一個自定義的E-mail頭部。
參數為頭部信息
函數原型:public function AddCustomHeader($custom_header){}
AddEmbeddedImage --方法
出自:PHPMailer::AddEmbeddedImage()
文件:class.phpmailer.php
說明:增加一個嵌入式圖片
參數:路徑,返回句柄[,名稱,編碼,類型]
函數原型:public function AddEmbeddedImage($path, $cid, $name = '', $encoding = 'base64', $type = 'application/octet-stream') {}
提示:AddEmbeddedImage(PICTURE_PATH. "index_01.jpg ", "img_01 ", "index_01.jpg ");
在html中引用
AddReplyTo--方法
出自:PHPMailer:: AddRepl
*************************************************/
?>
❷ 怎麼利用php發送郵件求詳細教程
PHP雖然提供了mail()函數,但並不好用,而PHPMailer是一個不錯的郵件發送工具,接下來將詳細介紹,需要了解的朋友可以參考下:
本人使用wamp集成開發環境,Apache2.4.4, Mysql5.6.12 , php5.4.12.開始的時候使用mail()發送郵件,更改配置始終無法成功,了解到mail()函數使用需要sendmail程序。又下載了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。以下是使用mail()函數發送郵件的php代碼:
[php] view plain
<span style="font-size:14px"><?php
$to = "[email protected]";
$subject = "Test mail";
$message = "Hello! This is a simple email message.";
$from = "[email protected]";
$headers = "From: $from";
$send=mail($to,$subject,$message,$headers);
if($send)
echo "Mail Sent";
else
echo "Sorry,mail sent failed!"
?></span>
在CSDN論壇上發現phpmailer可以方便快捷的發送郵件,以下寫出詳細使用教程:
1.需要下載PHPMailer文件包,(點擊打開鏈接)
2.確認你的伺服器已經系統支持socket,通過phpinfo()查看是否支持socket;
3.把文件解壓到你的WEB伺服器目錄下,就可以使用PHPMailer發送郵件了。
以下為前台表單php代碼:
[php] view plain
<span style="font-size:14px"><html>
<body>
<h3>phpmailer Unit Test</h3>
請你輸入<font color="#FF6666">收信</font>的郵箱地址:
<form name="phpmailer" action="testemail.php" method="post">
<input type="hidden" name="submitted" value="1"/>
郵箱地址: <input type="text" size="50" name="to" />
<br/>
<input type="submit" value="發送"/>
</form>
</body>
</html> </span>
以下為後台程序:
[php] view plain
<?php
/**
* Simple example script using PHPMailer with exceptions enabled
* @package phpmailer
* @version $Id$
*/
header("content-type:text/html;charset=utf-8");
ini_set("magic_quotes_runtime",0);
require('class.phpmailer.php');
try {
$mail = new PHPMailer(true); //New instance, with exceptions enabled
//$body = file_get_contents('contents.html');
//$body = preg_replace('/\\\\/','', $body); //Strip backslashes
$to = $_POST['to'];
$mail->CharSet="GB2312";//設置郵件字元編碼否則郵件會亂碼
$mail->Encoding="base64";
$mail->IsSMTP(); // tell the class to use SMTP
$mail->SMTPAuth = true; // enable SMTP authentication
$mail->Port = 25; // set the SMTP server port
$mail->Host = "smtp.qq.com"; // SMTP server
$mail->Username = "[email protected]"; // SMTP server username
$mail->Password = "000000000000"; // SMTP server password
//$mail->IsSendmail(); // tell the class to use Sendmail
$mail->AddReplyTo("[email protected]","han qing");
$mail->From = "[email protected]";
$mail->FromName = "han qing";
//$to = "[email protected]";
$mail->AddAddress($to);
$mail->Subject =$mail->Subject = "=?utf-8?B?" . base64_encode("First PHPMailer Message") . "?=";
$mail->Body = "<h1>phpmailer演示</h1> 這是用PHPMAILER發的第一份郵件,從QQ郵箱發到Google郵箱.";
$mail->AddAttachment("F:/myloe.jpg");
$mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test
$mail->WordWrap = 80; // set word wrap
//$mail->MsgHTML($body);
$mail->IsHTML(true); // send as HTML
$mail->Send();
echo 'Message has been sent.';
} catch (phpmailerException $e) {
echo $e->errorMessage();
}
?>
❸ 請問一下,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"發送郵件失敗!";
}?>
❹ 如何使用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中使用PHPMailer發送郵件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
header("content-type:text/html;charset=utf-8");
ini_set("magic_quotes_runtime",0);
require 'class.phpmailer.php';
try {
$mail = new PHPMailer(true);
$mail->IsSMTP();
$mail->CharSet='UTF-8'; //設置郵件的字元編碼,這很重要,不然中文亂碼
$mail->SMTPAuth = true; //開啟認證
$mail->Port = 25;
$mail->Host = "smtp.163.com";
$mail->Username = "[email protected]";
$mail->Password = "這是密碼";
//$mail->IsSendmail(); //如果沒有sendmail組件就注釋掉,否則出現「Could not execute: /var/qmail/bin/sendmail 」的錯誤提示
$mail->AddReplyTo("[email protected]","mckee");//回復地址
$mail->From = "[email protected]";
$mail->FromName = "www.phpddt.com";
$to = "[email protected]";
$mail->AddAddress($to);
$mail->Subject = "phpmailer測試標題";
$mail->Body = "<h1>phpmail演示</h1>這是php點點通(<font color=red>www.phpddt.com</font>)對phpmailer的測試內容";
$mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; //當郵件不支持html時備用顯示,可以省略
$mail->WordWrap = 80; // 設置每行字元串的長度
//$mail->AddAttachment("f:/test.png"); //可以添加附件
$mail->IsHTML(true);
$mail->Send();
echo '郵件已發送';
} catch (phpmailerException $e) {
echo "郵件發送失敗:".$e->errorMessage();
}
?>
❻ PHPMailer.class.php這個類 以前在本機上可以發送郵件的,過一段時間了現在發送會出現報錯
SMTP認證失敗,也就是說你的SMTP需要認證且你提供的登錄SMTP伺服器的用戶或密碼錯誤
❼ 急急急 phpmailer郵件內容出現亂碼 標題正常 (class.phpmailer.php) 編碼改過了 還是亂碼求解
$mail->CharSet = "GB2312"; 換成這個試試下
❽ 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結合phpmailer發送郵件
<?php
header("content-type:text/html;charset=utf-8");
ini_set("magic_quotes_runtime",0);
require'php_mail/class.phpmailer.php';
require'php_mail/class.smtp.php';
functionsend_mail($to,$fromname,$title,$content){
try{
$mail=newPHPMailer(true);
$mail->IsSMTP();
$mail->CharSet='UTF-8';//設置郵件的字元編碼,這很重要,不然中文亂碼
$mail->SMTPAuth=true;//開啟認證
$mail->Port=25;//埠請保持默認
$mail->Host="smtp.163.com";//使用QQ郵箱發送
$mail->Username="[email protected]";//這個可以替換成自己的郵箱
$mail->Password="xxxxxxxxxxxxxxx";//注意這里是寫smtp的授權碼寫的不是QQ密碼,此授權碼不可用
//$mail->IsSendmail();//如果沒有sendmail組件就注釋掉,否則出現「Couldnotexecute:/var/qmail/bin/sendmail」的錯誤提示
$mail->AddReplyTo("[email protected]","mckee");//回復地址
$mail->From="[email protected]";
$mail->FromName=$fromname;
$to=$to;
$mail->AddAddress($to);
$mail->Subject=$title;
$mail->Body=$content;
$mail->AltBody="Toviewthemessage,!";//當郵件不支持html時備用顯示,可以省略
$mail->WordWrap=80;//設置每行字元串的長度
//$mail->AddAttachment("f:/test.png");//可以添加附件
$mail->IsHTML(true);
$mail->Send();
//echo'郵件已發送';
}catch(phpmailerException$e){
//echo"郵件發送失敗:".$e->errorMessage();
}
returntrue;
}
$neirong="聯系電話:".$_POST['phone']."<br/>".$_POST['content']."<hr><pstyle='float:right;'>郵件來自官網</p>";
send_mail('[email protected]',$_POST['fromname'],'來信了ヾ(≧O≦)〃嗷~',$neirong);
//send_mail('[email protected]',$_POST['fromname'],'可愛的保氧家官網來信了ヾ(≧O≦)〃嗷~',$neirong);
//環境PHP5.3親測可用
?>
下載郵件類,結合這個就可以了
❿ 網站哪個文件綁定郵箱和簡訊
希望能夠在描述更清楚些,一般網站後台就可以綁定郵箱和簡訊,不需要再伺服器文件里搞
控制面板 -> 程序 -> 打開或關閉Windows功能,這時我們會看到下面的彈出框
然後點擊確定即可,等待幾分鍾即安裝完成。
在我們下載的PHP配置文件中Mail已經配置好了,所以這里不需要進行額外的配置,下面我們用代碼測試下效果,這里我是使用的class.phpmailer.php,因為php自帶的mail函數基本上是沒有這樣的伺服器供使用,大部門伺服器都需要進行身份的驗證,class.phpmailer.php網上有下載,下載包裡面還包含class.phpmailer.php、class.smtp.php和class.pop3.php,這里看你需要用哪種協議,class.phpmailer.php加上一個協議php放在你的PHP目錄下,即可進行發送郵件測試了,這里我以smtp協議進行說明。
require_once("class.phpmailer.php");
$mail = new PHPMailer();
$mail->CharSet = "utf-8";
$mail->IsSMTP(); // 經smtp發送
$mail->Host = "smtp.163.com"; // SMTP伺服器
$mail->Port= 25;
//$mail->SMTPAuth = true; // 打開SMTP 認證 這兩項是伺服器而定,在我的測試中因為伺服器沒有這兩項而失敗,去掉後就成功了
//$mail->SMTPSecure ='ssl';
$mail->Username = "username"; // 用戶名,一般是@前的部分
$mail->Password = "password"; // 密碼
$mail->From = "@163.com"; // 發信人
$mail->FromName = "XX"; // 發信人別名
$mail->AddAddress($tomail); // 收信人
$mail->WordWrap = 30;
$mail->IsHTML(true); // 以html方式發送
$mail->Subject = $subject; // 郵件標題
$mail->Body = $body; // 郵件內容
return $mail->Send();