phpmail發送郵件
㈠ php的mail怎麼發html格式的郵件
可以採用
phpmailer類,來做郵件發送,這也是很多PHP程序所採用的一個類發送
require(ROOT.'/class/phpMailer.class.php');//郵件發送類
/**
*
發送郵件
*
@param
string
$to
接收人郵件地址
*
@param
string
$title
郵件標題
*
@param
string
$contents
郵件內容
支持HTML格式
*
@param
string
$type
判斷是否要加附件
*
@param
string
$accessory
附件的名字
*
@return
成功返回true,失敗返回錯誤信息
*/
function
sendEmail($to,$title,$contents,$type
=
'',$accessory
=''){
$mail
=
new
PhpMailer(true);
$mail->IsSMTP();
$mail->CharSet
="UTF-8";//編碼
$mail->Debugoutput
=
'html';//
支持HTML格式
$mail->Host
=
T_SMTP_SERVER;//HOST
地址
$mail->Port
=
25;//埠
$mail->SMTPAuth
=
true;
$mail->Username
=
T_SMTP_LOGIN;//用戶名
$mail->Password
=
T_SMTP_PASSWORD;//密碼
$mail->SetFrom(T_SMTP_FROM,T_SMTP_FROM_NAME);//發件人地址,
發件人名稱
$mail->AddAddress($to);//收信人地址
//$mail->Subject
=
"=?utf-8?B?"
.
base64_encode()
.
"?=";
if
(!empty($type))
{
$mail->AddAttachment($type,$accessory);
//
添加附件,並指定名稱
}
$mail->Subject
=
$title;//郵件標題
$mail->MsgHTML($contents);
if
($mail->Send()){
return
true;
}else{
return
$mail->errorMessage();
}
}
望採納
Thx
㈡ php發郵件需要什麼東西
PHP mail() 函數
PHP mail() 函數用於從腳本中發送電子郵件。
語法
mail(to,subject,message,headers,parameters)
參數 描述
to 必需。規定 email 接收者。
subject 必需。規定 email 的主題。注釋:該參數不能包含任何新行字元。
message 必需。定義要發送的消息。應使用 LF (\n) 來分隔各行。
headers
可選。規定附加的標題,比如 From、Cc 以及 Bcc。
應當使用 CRLF (\r\n) 分隔附加的標題。
parameters 可選。對郵件發送程序規定額外的參數。
注釋:PHP 需要一個已安裝且正在運行的郵件系統,以便使郵件函數可用。所用的程序通過在 php.ini 文件中的配置設置進行定義。請在我們的 PHP Mail 參考手冊閱讀更多內容。
PHP 簡易 E-Mail
通過 PHP 發送電子郵件的最簡單的方式是發送一封文本 email。
㈢ php如何發送郵件
你好,用這個郵件類,需要在調用時,填寫一個smtp伺服器和你的用戶名密碼。
<?php
set_time_limit(600);
/*
* 郵件發送類
*/
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( "用戶名", "密碼", "發件smtp伺服器" );
$end = $sm->send( "收件人", "發件人(可以偽造哦)", "標題", "內容" );
if( $end ) echo $end;
else echo "發送成功!$x";
?>
㈣ php 發送郵件 要怎麼配置
在Windows平台下使用mail函數發送郵件,記錄如下
php.ini的設置:
SMTP = localhost
smtp_port = 25
sendmail_from=你的設定值
另外,還需要安裝IIS自帶的SMTP,在SMTP虛擬伺服器上點擊右鍵,在彈出的屬性窗口裡進行如下設置:
點擊訪問選項卡,再點擊中繼,在彈出的窗口出點擊添加,然後選單台計算機,添加IP地址為 127.0.0.1。然後一路確定返回。(不進行此項設置,可能會出現:SMTP server response: 550 5.7.1 Unable to relay for [email protected]。。。的錯誤)
這樣就可以使用mail函數了
<?php
mail("[email protected]","Test mail function of PHP.","hello world!");
?>
㈤ 如何用php結合phpmailer發送郵件
步驟圖解教程demo和
phpmailer代碼包下載:
看這個博主的文章,新手也能實現php發送郵件:網頁鏈接
㈥ 怎麼利用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中使用PHPMailer發送郵件
function postmail($to,$subject = '',$body = ''){
//Author:Jiucool WebSite: http://www.jiucool.com
//$to 表示收件人地址 $subject 表示郵件標題 $body表示郵件正文
//error_reporting(E_ALL);
error_reporting(E_STRICT);
date_default_timezone_set('Asia/Shanghai');//設定時區東八區
require_once('class.phpmailer.php');
include('class.smtp.php');
$mail = new PHPMailer(); //new一個PHPMailer對象出來
$body = eregi_replace("[\]",'',$body); //對郵件內容進行必要的過濾
$mail->CharSet ="GBK";//設定郵件編碼,默認ISO-8859-1,如果發中文此項必須設置,否則亂碼
$mail->IsSMTP(); // 設定使用SMTP服務
$mail->SMTPDebug = 1; // 啟用SMTP調試功能
// 1 = errors and messages
// 2 = messages only
$mail->SMTPAuth = true; // 啟用 SMTP 驗證功能
$mail->SMTPSecure = "ssl"; // 安全協議,可以注釋掉
$mail->Host = 'stmp.163.com'; // SMTP 伺服器
$mail->Port = 25; // SMTP伺服器的埠號
$mail->Username = 'wangliang_198x'; // SMTP伺服器用戶名,PS:我亂打的
$mail->Password = 'password'; // SMTP伺服器密碼
$mail->SetFrom('[email protected]', 'who');
$mail->AddReplyTo('[email protected]','who');
$mail->Subject = $subject;
$mail->AltBody = 'To view the message, please use an HTML compatible email viewer!'; // optional, comment out and test
$mail->MsgHTML($body);
$address = $to;
$mail->AddAddress($address, '');
//$mail->AddAttachment("images/phpmailer.gif"); // attachment
//$mail->AddAttachment("images/phpmailer_mini.gif"); // attachment
if(!$mail->Send()) {
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
// echo "Message sent!恭喜,郵件發送成功!";
}
}
希望對您有幫助,望採納,謝謝!
㈧ 如何用php結合phpmailer發送郵件
先下載phpmailer,保存在你的網站目錄,在發布的頁面添加一個函數用來區分發送的主題
require_once('class.phpmailer.php');
require_once("class.smtp.php");
$mail=newPHPMailer();
$mail->CharSet="UTF-8";//設定郵件編碼,默認ISO-8859-1,如果發中文此項必須設置為UTF-8
$mail->IsSMTP();//設定使用SMTP服務
$mail->SMTPAuth=true;//啟用SMTP驗證功能
$mail->SMTPSecure="ssl";//SMTP安全協議
$mail->Host="smtp.gmail.com";//SMTP伺服器
$mail->Port=465;//SMTP伺服器的埠號
$mail->Username="[email protected]";//SMTP伺服器用戶名
$mail->Password="your_password";//SMTP伺服器密碼
$mail->SetFrom('發件人地址','發件人名稱');//設置發件人地址和名稱
$mail->AddReplyTo("郵件回復人地址","郵件回復人名稱");
//設置郵件回復人地址和名稱
$mail->Subject='';//設置郵件標題
$mail->AltBody="為了查看該郵件,請切換到支持HTML的郵件客戶端";
//可選項,向下兼容考慮
$mail->MsgHTML('');//設置郵件內容
$mail->AddAddress('收件人地址',"收件人名稱");
//$mail->AddAttachment("images/phpmailer.gif");//附件
if(!$mail->Send()){
echo"發送失敗:".$mail->ErrorInfo;
}else{
echo"恭喜,郵件發送成功!";
}
㈨ php如何發送郵件
<?php
//定義邊界線
$boundary = uniqid( "" );
//生成郵件頭
$header = "From: $from\nContent-type: multipart/mixed;
boundary=\"$boundary\"\nX-Mailer:PHP\nX-Priority:3";
//獲取附件文件的MIME類型
$mimetype = mime_content_type('test.zip')
//獲取附件文件的名字
$attach = 'test.zip'
//對附件文件進行編碼和切分
$fp = fopen($attach, "r");
$content = fread($fp, filesize($attach));
$content = chunk_split( base64_encode($content) );
//生成郵件主體
$body ="
--$boundary
Content-type: text/plain; charset=iso-8859-1
Content-transfer-encoding: 8bit
$message
--$boundary
Content-Type: $mimeType; name=$filename
Content-Disposition: attachment; filename=$filename
Content-Transfer-Encoding: base64
$content
--$boundary--";
//發送郵件
mail( $to, $subject, $body, $header );
?>
㈩ 怎麼用php的mail函數發郵件
functionsendMail($to,$title,$content){
Vendor('PHPMailer.PHPMailerAutoload');
$mail=newPHPMailer();//實例化
$mail->IsSMTP();//啟用SMTP
$mail->Host=C('MAIL_HOST');//smtp伺服器的名稱(這里以QQ郵箱為例)
$mail->SMTPAuth=C('MAIL_SMTPAUTH');//啟用smtp認證
$mail->Username=C('MAIL_USERNAME');//你的郵箱名
$mail->Password=C('MAIL_PASSWORD');//郵箱密碼
$mail->From=C('MAIL_FROM');//發件人地址(也就是你的郵箱地址)
$mail->FromName=C('MAIL_FROMNAME');//發件人姓名
$mail->AddAddress($to,"尊敬的客戶");
$mail->WordWrap=50;//設置每行字元長度
$mail->IsHTML(C('MAIL_ISHTML'));//是否HTML格式郵件
$mail->CharSet=C('MAIL_CHARSET');//設置郵件編碼
$mail->Subject=$title;//郵件主題
$mail->Body=$content;//郵件內容
$mail->AltBody="";//郵件正文不支持HTML的備用顯示
$relt=$mail->Send();
if(!$relt){
writeLog('發送郵件錯誤,錯誤信息:'.$mail->ErrorInfo,1,'發送郵箱失敗');
}
return($relt);
}
這個是thinkphp版本的。