php發送郵件html
Ⅰ 如何使用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發送郵件的時候報錯SMTP Error: Could not authenticate.是什麼原因
可能的原因有2個
1、smtp驗證沒通過,就是smtp server 的用戶名和密碼不正確
2、Linux系統中的saslauthd服務配置出錯,文件地址:/etc/sysconfig/saslauthd
文件將裡面的內容
FLAGS= # 此處應該為空,修改前為 FLAGS="r"Ⅲ 我用ajax向php頁面發送數據,結果返回到html頁面提交成功後頁面刷新了
在使用Ajax向PHP頁面發送數據時,如果遇到提交成功後頁面自動刷新的問題,可以嘗試將表單提交按鈕的type屬性從"submit"修改為"button",然後在按鈕的onclick事件中編寫Ajax方法來處理數據提交。這樣可以避免頁面因表單提交而自動刷新。
如果在使用Ajax提交數據後,發現頁面中某些數據未發生變化,需要檢查選擇器是否正確。通常情況下,使用id選擇器最為保險,因為它能唯一地定位到一個元素。如果需要使用class選擇器,確保在選擇器中添加了索引,例如:document.querySelector('.className').value。
在編寫Ajax方法時,可以參考以下代碼示例:
javascript
function sendAjaxData() {
var xhr = new XMLHttpRequest();
xhr.open("POST", "your_php_file.php", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) {
console.log(xhr.responseText);
}
};
xhr.send("data=" + encodeURIComponent(document.getElementById('inputId').value));
}
在這個示例中,`document.getElementById('inputId').value`獲取了id為`inputId`的輸入框的值,並通過`xhr.send()`方法發送給PHP文件處理。
確保在發送Ajax請求後,正確處理伺服器返回的數據,以便更新頁面上的相應內容。
總之,通過這種方式可以避免頁面因表單提交而刷新,同時也能確保頁面上的數據能夠正確更新。Ⅳ PHP到底怎麼發送郵件啊,PHP高手請指教!
很懷疑樓上的是不是都是抄的。宴鏈
以下是我幫別人寫的一段發送找回密碼的代碼,在windows,apache2,php5下正常運行,也沒有亂碼現象
需要windows的STMP支持,
STMP可以在控制面板的 添加/刪除軟體 裡面安裝
$to = $info['txtEmail'];
$subject = "找回密碼";
$subject = "=?UTF-8?B?".base64_encode('找回密碼')."?=";
$message = $txtUnionID.',你好:
請點擊下面鏈接找回密碼:
<a href="http://'.$_SERVER['SERVER_NAME']" target="_blank">
http://'.$_SERVER['SERVER_NAME'].'/union/index.php?m=forgetPassword&id='.$md5.'</a>
(如果鏈接無法點擊,
請將它拷貝到瀏覽器的地址欄中。)
有效時間為三天
此郵件為系統自動發送慶祥跡,請勿回復'.
$_SERVER['SERVER_NAME'].
date('Y年m月d日');
$from = "[email protected]";
//$headers = "From: $from";
$headers = 'MIME-Version: 1.0' . "譽並\r\n";
$headers .= "From: $from"."\r\n"."Reply-to:$from"."\r\n"."X-Mailer: PHP".phpversion()."\r\n";
$headers .= "Content-type: text/html; charset=utf-8\r\n";
$headers .= "Content-Transfer-Encoding: 8bit\r\n";
mail($to,$subject,$message,$headers);