當前位置:首頁 » 編程語言 » php郵箱驗證

php郵箱驗證

發布時間: 2022-01-08 20:49:29

1. php如何實現郵箱驗證

這是一個可以發送郵件的程序。程序是直接使用SMTP協議進行發送,用到了經典的phpMailer庫。


請閱讀apply.php文件。


發郵件之前你需要一個用來發送郵件的郵箱賬號。但不能使用這個賬號發送太多的郵件,否則會被當做垃圾郵件屏蔽。如果發送量較大,可以多申請幾個郵箱。


關鍵變數說明:

subject: 郵件的主題

email: 郵件的內容

host: SMTP主機,與你申請的郵箱的服務商有關,詳見代碼內注釋

fromname: 發件人的名字,可以任意寫,對方收到時能看到這個名字

from: 發件人地址

to: 收件人地址,代碼中寫了$to = $from,請自行更改

username和password: 你郵箱的賬號和密碼,一般username都等於發件人地址。必須提供,否則無法發送郵件。


PHPMailer說明:

$mailer = new PHPMailer(true);
$mailer->IsHTML(true); // 這是一封HTML郵件
$mailer->IsSMTP(true); // 連接SMTP服務發送郵件
# $mailer->SMTPDebug = true; // 是否開啟調試模式
$mailer->CharSet = 'UTF-8'; // 郵件內容的編碼,和你程序的編碼保持一致
$mailer->Encoding = 'base64'; // 郵件傳遞過程使用的編碼
$mailer->FromName = $fromname; // 發件人
$mailer->Host = $host; // SMTP服務地址
$mailer->AddAddress($to); // 添加收件人
$mailer->From = $from; // 設置發件人
$mailer->Subject = $subject; // 設置主題
$mailer->MsgHTML($email); // 設置HTML郵件內容

$mailer->SMTPAuth = true; // 開啟SMTP驗證
$mailer->Username = $username; // 設置用戶名
$mailer->Password = $passwd; // 設置密碼

$mailer->Send(); // 發送郵件

2. 一個驗證郵箱格式是否正確的php函數的例子

//首先確認是否有一個@符號的存在,同時驗證郵箱長度是否正確 if (!ereg("^[^@]{1,64}@[^@]{1,255}$", $email)) { //如果@符號的個數不對,或者郵箱每部分的長度不對則輸出錯誤 return false;}//把郵箱按「@」符號和「.」符號分割成幾個部分分別用正則表達式匹配 $email_array = explode("@", $email); $local_array = explode(".", $email_array[0]); for ($i = 0; $i < sizeof($local_array); $i++) { if (!ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$", $local_array[$i])) { return false;}}if (!ereg("^\[?[0-9\.]+\]?$", $email_array[1])) { //檢查域名部分是否是IP地址,如果不是則應該是有效域名 $domain_array = explode(".", $email_array[1]); if (sizeof($domain_array) < 2) { //域名部分的長度不能太短,否則輸出錯誤 return false; } for ($i = 0; $i < sizeof($domain_array); $i++) { if (!ereg("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$", $domain_array[$i])) { //域名部分如果不是字母和數字,或者允許的其他字元,則輸出錯誤 return false;}}} //所有檢測通過,輸出郵箱格式正確 return true; }?><?//郵箱格式驗證函數調用示例if(!valid_email($myeml)){

3. 請寫一個php函數,驗證電子郵件格式是否正確

$regex='/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[-_a-z0-9][-_a-z0-9]*.)*(?:[a-z0-9][-a-z0-9]{0,62}).(?:(?:[a-z]{2}.)?[a-z]{2,})$/i';
$str='[email protected]';
if(preg_match($regex,$str)){
echo'電子郵件格式正確';
}

4. php驗證郵箱格式

PHP正則表達式驗證郵箱示例如下:
<?php
$email='[email protected]';
$pattern="/([a-z0-9]*[-_.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[.][a-z]{2,3}([.][a-z]{2})?/i";
if(preg_match($pattern,$email)){
echo '郵箱驗證通過!';
} else{
echo '郵箱格式錯誤!';
}
?>

5. PHP 驗證郵箱輸入格式錯誤的

你的正則沒什麼問題的,我測了下是可以判斷的,另外給一個我們項目中通用的表單驗證,很好擴展:
http://..com/question/150844190.html

測試代碼:
<script>
function validate()
{
var pattern=/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]w+)*$/;
var email = document.getElementById("mail").value;

if(!pattern.test(email))
alert("Wrong");
else
alert('Right')
}
</script>

<INPUT TYPE="text" NAME="mail" ID="mail">
<INPUT TYPE="button" VALUE="" ONCLICK="validate()">

6. php郵件發送驗證碼問題

你的if語句有問題

肢解開來是這樣的

if(存在驗證碼)
{
if(驗證碼不正確)
{
提示錯誤
}
else
{
發送郵件
}
}

然後不存在驗證碼沒有相關操作。。。

7. 關於php正則驗證郵箱

[-+.]這裡面的+好像是不行的吧[-.]

(qq)|(yahoo)|(souhu)|(sina)|(gmail)|(hotmail)|(21cn)要寫成(qq|yahoo|souhu|sina|gmail|hotmail|21cn)

{1}這個是多餘的

同樣(com)|(cn)要寫成(com|cn)
^\w+([-.]\w+)*@(126|139|163|qq|yahoo|souhu|sina|gmail|hotmail|21cn)\.(com|cn)$

另外此正則不能精確匹配,如你本來是要匹配163.com的郵箱,但163.cn也可以匹配了
再改造如下
^\w+([-.]\w+)*@(126\.com|139\.com|163\.com|qq\.com|yahoo\.com|sohu\.com|sina\.cn|gmail\.com|hotmail\.com|21cn\.cn)$
這些.com/.cn是我瞎寫的,你可以自己整理一下

8. PHP怎麼實時驗證郵箱是否被注冊了

比如用jquery實現:
$(document).ready(function(){
$.ajax({
type:"GET",
url:"*.php處理路徑="+ name;(如果有中文,escape(name))
dataType:""
success:function(msg)
{
alert(msg);//是否存在
},

});

9. PHP如何通過SMTP驗證發送郵件

PHP mail()與SMTP驗證

缺乏靈活性是PHP的mail()函數顯得過於簡單的部分原因。最重要而且令人沮喪的是,死板的mail()函數通常還不允許你使用你選擇的SMTP伺服器,並且它也根本不支持如今已被眾多郵件伺服器採用的SMTP驗證。


幸運的是,克服PHP本身的缺陷既不困難,也不麻煩,更不痛苦。對於大多數情況下的郵件應用,免費的PEAR Mail包足夠提供全部的所需功能與靈活性,並且它也能夠與你期望的外部郵件伺服器進行驗證。在提高安全性的方面,它也支持SSL連接。


通過SMTP驗證在PHP腳本中發送郵件

在PHP腳本中通過SMTP驗證連接外部SMTP伺服器並且發送郵件的方法如下:


確保PEAR Mail包已經安裝。

通常,它已經安裝到了PHP之中,尤其在PHP 4及以後的版本中。放手一試吧。

<?php
require_once"Mail.php";

$from="SandraSender<s>";
$to="RamonaRecipient<r>";
$subject="Hi!";
$body="Hi, Howareyou?";

$host="mail.example.com";
$username="smtp_username";
$password="smtp_password";

$headers=array('From'=>$from,
'To'=>$to,
'Subject'=>$subject);
$smtp=Mail::factory('smtp',
array('host'=>$host,
'auth'=>true,
'username'=>$username,
'password'=>$password));

$mail=$smtp->send($to,$headers,$body);

if(PEAR::isError($mail)){
echo("<p>".$mail->getMessage()."</p>");
}else{
echo("<p>Messagesuccessfullysent!</p>");
}
?>

10. PHP郵件驗證找回密碼

給你舉個例子, 就拿找回密碼來說吧.

當用戶請求找回密碼的時候, 用戶根據用戶提供的用戶名或郵箱到資料庫查找這個用戶的信息, 如果相關用戶名或者郵箱存在就可以進行密碼找回, 如果不存在提示用戶輸入錯誤.

當在資料庫中找到相關記錄的時候, 首先要生成一個隨機的驗證碼(這里我們假設生成了ABCDE), 將驗證碼,請求時間和相關用戶信息(可能只是用戶id或者也可以將驗證碼存在用戶信息表中)存到資料庫中, 然後想記錄中的郵箱發送一封信, 信中提供一個驗證碼或者攜帶驗證碼的url類似這樣,a.php?code=ABCDE.

用戶如果是這個郵箱的所有者就可以收到這封信, 點擊鏈接訪問a.php ?code=ABCDE, a.php 接到code=ABCDE 然後到資料庫里查找這個找回密碼的請求, 並取得用戶相關信息然後提供一個表單用來修改密碼.

用戶輸入新密碼之後程序根據驗證碼和新密碼將指定用戶的密碼修改掉.

熱點內容
php數組的數量 發布:2024-05-12 23:27:23 瀏覽:976
mc小駱解說我的世界伺服器3 發布:2024-05-12 23:24:39 瀏覽:767
sql雙寫 發布:2024-05-12 23:16:13 瀏覽:945
定義一個python數組 發布:2024-05-12 23:11:00 瀏覽:50
電腦具體配置是哪些內容 發布:2024-05-12 22:56:10 瀏覽:526
公司辦公室人員怎麼配置 發布:2024-05-12 22:40:45 瀏覽:585
資料庫啟動伺服器 發布:2024-05-12 22:40:32 瀏覽:432
鏈數據存儲 發布:2024-05-12 22:26:41 瀏覽:426
android的web應用 發布:2024-05-12 22:19:00 瀏覽:171
如何反編譯vfp 發布:2024-05-12 22:16:30 瀏覽:746