网上有些教程可以参考,但有一些注意点。
首先你要有邮件服务器,IIS自带的有一个,
其次就是关闭一些防火墙,这个对发邮件有影响,之前我怎么也发不出去,关掉就可以。

解决方案 »

  1.   

    建议用 Socket + SMTP 类去发送。~~~~
      

  2.   

    其实你只要找到一个可以匿名发邮件的邮件服务器,然后修改php.ini以下部分[mail function]
    ; For Win32 only.
    SMTP = localhost ; for Win32 only
    smtp_port = 25
    sendmail_from= [email protected] ; for Win32 only将localhost改为 可以匿名发邮件的邮件服务器的地址即可。
      

  3.   

    TO:keaizhong(可爱钟)
    可以详细说说吗?
    TO:coolstr(占卜师)
    用keaizhong(可爱钟)说的IIS的SMTP服务器不知道可不可以?
      

  4.   

    我用socket和类发送邮件,从来没有发送出过正文。
    主题倒是可以。
      

  5.   

    欢迎大家加入PHP+WML开发WAP:QQ群:8352641 大家共同进步!
      

  6.   

    在自己的电脑上装一个微型的SMTP服务器吧
      

  7.   

    [mail function]
    ; For Win32 only.
    SMTP = localhost ; for Win32 only
    smtp_port = 25
    sendmail_from= [email protected] ; for Win32 only你装起来试一下就知道了,再把上面的改成相应的我以前试过可以的。
    不过我从来都没有在项目中正式用过这功能。
      

  8.   

    谁给个全面例子呢?用 Socket + SMTP 类发送邮件不稳定的 而且速度太慢
      

  9.   

    <?   
    function send_mail($to,$from,$subject, $message,$html=0)
    {
    //使用本函数之前,务必请定义好以下变量
    #############################################

    $smtp ="exmaple.com";            //SMTP 服务器
    $check = 1;
    //SMTP需要要身份验证设值为 1 不需要身份验证值为 0,现在大多数的SMTP服务商都要验证,如不清楚请与你的smtp 服务商联系。
    if ($check) {

    $username = "[email protected]";   //您的email帐号名称
    $password = "exmaple";  //您的email密码
    }

    $s_from = "[email protected]";  //此email 必需是发信服务器上的email
    ###############################################

    //连接服务器
    $fp = fsockopen ( $smtp, 25, $errno, $errstr, 60);
    if (!$fp ) return "联接服务器失败".__LINE__;
    set_socket_blocking($fp, true );
    $lastmessage=fgets($fp,512);

    if ( substr($lastmessage,0,3) != 220 ) return "错误信息A:".$lastmessage.__LINE__;

    //HELO
    $yourname = "admin";
    if($check == "1") $lastact="EHLO ".$yourname."\r\n";
    else $lastact="HELO ".$yourname."\r\n";

    fputs($fp, $lastact);
    $lastmessage == fgets($fp,512);
    if (substr($lastmessage,0,3) != 220 ) return "错误信息B$lastmessage".__LINE__;
    while (true) {
    $lastmessage = fgets($fp,512);
    if ( (substr($lastmessage,3,1) != "-")  or  (empty($lastmessage)) )
    break;
    }


    //身份验证
    if ($check=="1") {
    //验证开始
    $lastact="AUTH LOGIN"."\r\n";
    fputs( $fp, $lastact);
    $lastmessage = fgets ($fp,512);
    if (substr($lastmessage,0,3) != 334) return "错误信息C$lastmessage".__LINE__;
    //用户姓名
    $lastact=base64_encode($username)."\r\n";
    fputs( $fp, $lastact);
    $lastmessage = fgets ($fp,512);
    if (substr($lastmessage,0,3) != 334) return "错误信息D$lastmessage".__LINE__;
    //用户密码
    $lastact=base64_encode($password)."\r\n";
    fputs( $fp, $lastact);
    $lastmessage = fgets ($fp,512);
    if (substr($lastmessage,0,3) != "235") return "错误信息E$lastmessage".__LINE__;
    }

    //FROM:
    //$lastact="MAIL FROM: $s_from" . "\r\n";
    $lastact="MAIL FROM: ".$s_from. "\r\n";
    fputs( $fp, $lastact);
    $lastmessage = fgets ($fp,512);
    if (substr($lastmessage,0,3) != 250) return "错误信息F$lastmessage".__LINE__;

    //TO:
    $lastact="RCPT To: $to" . "\r\n";
    fputs( $fp, $lastact);
    $lastmessage = fgets ($fp,512);
    if (substr($lastmessage,0,3) != 250) return "错误信息G$lastmessage".__LINE__;

    //DATA
    $lastact="DATA\r\n";
    fputs($fp, $lastact);
    $lastmessage = fgets ($fp,512);
    if (substr($lastmessage,0,3) != 354) return "错误信息H$lastmessage".__LINE__;


    //处理Subject头
    $head="Subject: $subject\r\n";
    $message = $head."\r\n".$message;

    //处理From头
    $head="From: $from\r\n";
    $message = $head.$message;

    //处理To头
    $head="To: $to\r\n";
    $message = $head.$message;
    if($html==1)
    {
    $head = "Content-type:text/html\r\n";
    $message =$head.$message;
    }

    //加上结束串
    $message .= "\r\n.\r\n";

    //发送信息
    fputs($fp, $message);
    $lastact="QUIT\r\n";

    fputs($fp,$lastact);
    fclose($fp);
    return 0;
    }?>
      

  10.   

    在win32环境下 如何才能使支持mail函数直接发送呢?