广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 16485 个阅读者
 
<<   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.019823 second(s),query:16 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言