廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 16932 個閱讀者
 
<<   1   2  下頁 >>(共 2 頁)
發表文章 發表投票 回覆文章
  可列印版   加為IE收藏   收藏主題   上一主題 | 下一主題   
chris710908 手機 會員卡
個人文章 個人相簿 個人日記 個人地圖
知名人士
級別: 知名人士 該用戶目前不上站
推文 x15 鮮花 x128
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片
推文 x0
[PHP][討論] [求助]請問PHP mail認證問題?
精華文章
請問各位~~
          我想透過自己用了MAIL SERVER 發信~~但是位了部讓有心
人士透過我的SERVER發信~我想採用SMTP認證方式,我環境是php+mysql
請問有什麼辦法可以讓php server有SMTP認證功能,或者寫網頁的時候
可以透過哪些語法來達成SMTP認證?請教了~~謝謝


獻花 x0 回到頂端 [樓 主] From:台灣台灣索尼 | Posted:2005-05-27 20:18 |
xxxzzz
個人頭像
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x0 鮮花 x46
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

利用fsockopen函式即可
fsockopen函式用法請參考
http://www.php5.idv.tw/modules.ph...=show&shid=492


獻花 x0 回到頂端 [1 樓] From:台灣亞太線上 | Posted:2005-05-28 00:09 |
chris710908 手機 會員卡
個人文章 個人相簿 個人日記 個人地圖
知名人士
級別: 知名人士 該用戶目前不上站
推文 x15 鮮花 x128
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

感謝大大~~可是以上的語法是開啟SMTP的~
但是關於認證帳號跟密碼的部份好像不能設
因為我想透過認證帳號密碼的方式發MAIL
請問要如何做?


獻花 x0 回到頂端 [2 樓] From:台灣台灣索尼 | Posted:2005-05-28 00:56 |
xxxzzz
個人頭像
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x0 鮮花 x46
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

下面是引用chris710908於2005-05-28 00:56發表的 :
感謝大大~~可是以上的語法是開啟SMTP的~
但是關於認證帳號跟密碼的部份好像不能設
因為我想透過認證帳號密碼的方式發MAIL
請問要如何做?
剛好有範例
如下..
http://www.knowsky.com...?id=17308


獻花 x0 回到頂端 [3 樓] From:台灣亞太線上 | Posted:2005-05-28 01:19 |
chris710908 手機 會員卡
個人文章 個人相簿 個人日記 個人地圖
知名人士
級別: 知名人士 該用戶目前不上站
推文 x15 鮮花 x128
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

表情好像可以耶~~大大真是厲害~小弟在問個問題
因為老師希望可以有那種群發MAIL的功能,就是說不用每次只寄一封
像利用echo send_mail('EMIAL位址','hello','OK');
這樣要怎樣才能將資料庫的欄位讀出來然後寄發MAIL?(資料庫中已有MAIL資料欄位)


獻花 x0 回到頂端 [4 樓] From:台灣台灣索尼 | Posted:2005-05-28 01:52 |
xxxzzz
個人頭像
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x0 鮮花 x46
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

下面是引用chris710908於2005-05-28 01:52發表的 :
表情好像可以耶~~大大真是厲害~小弟在問個問題
因為老師希望可以有那種群發MAIL的功能,就是說不用每次只寄一封
像利用echo send_mail('EMIAL位址','hello','OK');
這樣要怎樣才能將資料庫的欄位讀出來然後寄發MAIL?(資料庫中已有MAIL資料欄位)

假設您已會從資料庫讀出資料處理

假設有一堆要寄的Email位址,形式如下(用逗號,分隔)
aa@aa.aa,bb@123.123,cc@abc.abc

我改上面的程式示範
改成
echo send_mail('aa@aa.aa,bb@123.123,cc@abc.abc','發信標題','發信內容');

再來修改下面這一行
$smtp[] = array("RCPT TO: <".$to.">".$lb,"250","RCPT TO error: ");

改成
$to_arr=split(",",$to);
$to_arr_num=count($to_arr);
for($i = 0 ; $i < $to_arr_num ; $i++){
  $smtp[] = array("RCPT TO: <".$to_arr[$i].">".$lb,"250","RCPT TO error: ");
}
即可


獻花 x0 回到頂端 [5 樓] From:台灣亞太線上 | Posted:2005-05-28 11:40 |
chris710908 手機 會員卡
個人文章 個人相簿 個人日記 個人地圖
知名人士
級別: 知名人士 該用戶目前不上站
推文 x15 鮮花 x128
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

恩~~這樣子我大概了解了..因為之前我是用MXP套件PHP線上郵寄
<?php
$mailtype='Content-Type:text/html;charset=big5'
$mailFrom='chris@pchome.com.tw '
$mailTo=$row_RecMember['m_email'];
$mailCC=''
$mailBCC=''
$mailSubject='會員系統密碼認證信'
$mailContent = nl2br($row_RecMember['m_nick'].'您好,您的密碼為:'.$row_RecMember['m_passwd']);
$maildata = "From:$mailFrom\r\n";
if ($mailCC != '') {
$maildata .= "CC:$mailCC\r\n";
}
if ($mailBCC != '') {
$maildata .= "BCC:$mailBCC\r\n";
}
$maildata .= "$mailtype";
mail($mailTo,$mailSubject,$mailContent,$maildata);
?>

那我是藉由前一頁所傳過來的SESSION(輸入的EMAIL)然後檢查資料庫有沒有相關資料
(依據$row_RecMember['m_email'];)有則寄出MAI,我的目的是想說因為這函式並沒有
提供SMTP認證,所以我想整合大大所提供的根現有的函式,這樣辦的到嗎?
很謝謝大大的教學,小弟還在學習當中~ 表情 L


獻花 x0 回到頂端 [6 樓] From:台灣台灣索尼 | Posted:2005-05-28 13:42 |
xxxzzz
個人頭像
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x0 鮮花 x46
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

既然您已經有其他可用的郵寄程式
那只需將上面程式留下認證的部分
其他全部刪除
再判斷是否認證通過
通過就執行你本來的程式
修改如下
複製程式
<?
        $smtp_acc =""; //Smtp認証的用戶名
        $smtp_pass="";          //Smtp認証的密碼,一般等同pop3密碼
        $smtp_host="";    //SMTP伺服器位址,類似 smtp.tom.com
        $lb="\r\n";                    //linebreak

        $smtp = array(
                //2、發送Auth Login,期待返回334
                array("AUTH LOGIN".$lb,"334","AUTH error:"),
                //3、發送經過Base64編碼的用戶名,期待返回334
                array(base64_encode($smtp_acc).$lb,"334","AUTHENTIFICATION error : "),
                //4、發送經過Base64編碼的密碼,期待返回235
                array(base64_encode($smtp_pass).$lb,"235","AUTHENTIFICATION error : "));
         //打開smtp伺服器端口
        $fp = @fsockopen($smtp_host, 25);
        if (!$fp) echo "<b>Error:</b> Cannot conect to ".$smtp_host."<br>";
        while($result = @fgets($fp, 1024)){if(substr($result,3,1) == " ") { break; }}
        
        $result_str="";
        //發送smtp數組中的命令/數據
        foreach($smtp as $req){
                //發送訊息
                @fputs($fp, $req[0]);
                //如果需要接收伺服器返回訊息,則
                if($req[1]){
                        //接收訊息
                        while($result = @fgets($fp, 1024)){
                                if(substr($result,3,1) == " ") {break;}                                                
                        }
                        if (!strstr($req[1],substr($result,0,3))){
                                $result_str.=$req[2].$result."<br>";
                        }
                }
        }
        //關閉連接
        @fclose($fp);
if(!$result_str){
echo"認證成功,在這邊改成你要執行的程式";
}else{
echo "錯誤訊息<br>" . $result_str;
}
?>


獻花 x0 回到頂端 [7 樓] From:台灣亞太線上 | Posted:2005-05-28 21:25 |
chris710908 手機 會員卡
個人文章 個人相簿 個人日記 個人地圖
知名人士
級別: 知名人士 該用戶目前不上站
推文 x15 鮮花 x128
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

xxxzzz大大~~我也按照你的方式,是把我上面的程式碼貼進去
if(!$result_str){
echo"認證成功,這邊改成你要執行的程式";<---是貼在這邊ㄇ?
}else{
echo "錯誤訊息<br>" . $result_str;
}
~~結果要執行PHP的時候呈現空白,是我哪裡用錯了ㄇ?


獻花 x0 回到頂端 [8 樓] From:台灣台灣索尼 | Posted:2005-05-28 23:29 |
xxxzzz
個人頭像
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x0 鮮花 x46
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

下面是引用chris710908於2005-05-28 23:29發表的 :
xxxzzz大大~~我也按照你的方式,是把我上面的程式碼貼進去
if(!$result_str){
echo"認證成功,這邊改成你要執行的程式";<---是貼在這邊ㄇ?
}else{
echo "錯誤訊息<br>" . $result_str;
}
~~結果要執行PHP的時候呈現空白,是我哪裡用錯了ㄇ?

是貼在那邊沒錯
如果只貼您上面那段程式,正確執行完當然會是空白的,
因為沒有輸出其他東西
如果您從資料庫取出來的資料無誤,那應該收的到信

剛試了一下...如下
我將要從資料庫取資料的變數刪掉以方便測試...可正確執行
if(!$result_str){
$mailtype='Content-Type:text/html;charset=big5'
$mailFrom='chris@pchome.com.tw'
$mailTo='xxx@xxx.xxx.xx'
$mailCC=''
$mailBCC=''
$mailSubject='會員系統密碼認證信'
$mailContent = nl2br('您好,您的密碼為:');
$maildata = "From:$mailFrom\r\n";
if ($mailCC != '') {
$maildata .= "CC:$mailCC\r\n";
}
if ($mailBCC != '') {
$maildata .= "BCC:$mailBCC\r\n";
}
$maildata .= "$mailtype";
mail($mailTo,$mailSubject,$mailContent,$maildata);
}else{
echo "錯誤訊息<br>" . $result_str;
}


獻花 x0 回到頂端 [9 樓] From:台灣亞太線上 | Posted:2005-05-29 00:51 |

<<   1   2  下頁 >>(共 2 頁)
首頁  發表文章 發表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.059799 second(s),query:16 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言