这个问题大概困扰我半年了
现在我的了解如下下面的验证是基于系统用户的postfix邮件服务器
--------------------------------------------------------
php mail函数需要有服务器支持 必须有自己的邮件服务器mail函数发邮件不需要smtp验证,但是像163之类的邮箱会显示由系统账号daemon或root代发
为何是这两个 还有为何有时是daemon有时是root 不了解 望知道的人解释此方式发QQ邮箱 不会显示代发 但是这种方式导致的问题是 退信和自动回复无法到达发件人的邮件
----------------------------------------------------------------------php通过smtp放送 可以用他人的服务器也可以用自己的服务器 
此方式需要基于smtp验证 gmail的还是ssl验证 此方式可以解决php通过mail函数发邮件导致的问题----------------------------------------------------------smtp方式的原理望了解的人 解释下 或者给点资料php发邮件的两种方式的区别 望了解的人 更详细的分析

解决方案 »

  1.   

    很简单:mail 是自己发smtp 是通知别人代替自己发(即便服务器是自己的,那也是通知邮件服务器,而不是直接发)
      

  2.   


    对于mail是自己发,我感到有些疑惑,是什么意思??
      

  3.   

    建议去搜所有http协议1.1的smtp篇
    或者可以看一下pear的smtp类
      

  4.   

    其实就是由PHP创建一个Socket,与SMTP服务器连接,发送相应指令到SMTP服务器。然后SMTP服务器接收到这些指令就会发送你的邮件。
      

  5.   

    读一下下边的代码你就知道原理了
    $FP=FSockOpen("www.php.net",80,$errno,$errstr,30);
    IF(!$FP){
    Echo 'Find Error:',$errstr($errno),'<br>\n';
    }Else{
    fputs($FP,"GET / HTTP/1.0\r\nHost:www.example.com\r\n\r\n");
    Echo 'Output:<br>',Chr(10);
    While(!feof($FP)){
    Echo fgets($FP,128),'<br>--------<br>';
    }
    Fclose($FP);
    }mail函数用的是php解释引擎来发,这要求服务器必须要搭建为邮件服务器,不过好处就是发送速度明显要比socket速度快