php mail()函数在windows不能用,需要安装sendmail。1.下载sendmail.zip2.解压到C:下,例如C:\PHP\sendmail,最好短路径,长路径名有可能产生问题。3.修改php.ini如下sendmail_path = "C:\PHP\sendmail\sendmail.exe -t"4.根据你自己的配置环境修改sendmail.ini。第一次最好启用debug.log_file,error_logfile,以查看sendmail是否生效。5.重启apache用sendmail结合其它的smtp服务器,如smtp.gmail.com来实现发邮件。现在大部分邮箱都要求smtp验证,所以要在sendmail.ini中加入用户名和密码。php.ini配置 (以用gmail邮箱为例)[mail function]; For Win32 only.SMTP = smtp.gmail.comsmtp_port = 25; For Win32 only.sendmail_from = zmacro@gmail.com; For Unix only. You may supply arguments as well (default: “sendmail -t -i”).sendmail_path = “C:\PHP\sendmail\sendmail.exe -t”就配置三项,smtp、smtp_port和sendmail_pathsendmail.ini配置[sendmail] ; you must change mail.mydomain.com to your smtp serversmtp_server=smtp.gmail.comsmtp_port=25auth_username=yourusernameauth_password=yourpasswordforce_sender=zmacro@gmail.com; default_domain=mydomain.comsendmail网上有下的,如果你是用xampp,那里面直接就带了。同时在虚拟主机的httpd.conf里加上这样一句<directory d:/www/users/username> php_admin_value sendmail_path ‘C:\PHP\sendmail\sendmail.exe -t zmacro@gmail.com’</directory>此邮件地址为用户的邮件地址,随便添。 ------------------------测试文件mail_test.php<?if(mail("yourname@sina.com","测试","测试邮件")){echo "发送成功!!";}else{echo "发送失败!!";}?>
使用PHPMailer发送邮件:<?php header("content-type:text/html;charset=utf-8"); ini_set("magic_quotes_runtime",0); require 'class.phpmailer.php'; try { $mail = new PHPMailer(true); $mail->IsSMTP(); $mail->CharSet='UTF-8'; //设置邮件的字符编码,这很重要,不然中文乱码 $mail->SMTPAuth = true; //开启认证 $mail->Port = 25; $mail->Host = "smtp.163.com"; $mail->Username = "phpddt1990@163.com"; $mail->Password = "这是密码"; //$mail->IsSendmail(); //如果没有sendmail组件就注释掉,否则出现“Could not execute: /var/qmail/bin/sendmail ”的错误提示 $mail->AddReplyTo("phpddt1990@163.com","mckee");//回复地址 $mail->From = "phpddt1990@163.com"; $mail->FromName = "www.phpddt.com"; $to = "987044391@qq.com"; $mail->AddAddress($to); $mail->Subject = "phpmailer测试标题"; $mail->Body = "<h1>phpmail演示</h1>这是php点点通(<font color=red>www.phpddt.com</font>)对phpmailer的测试内容"; $mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; //当邮件不支持html时备用显示,可以省略 $mail->WordWrap = 80; // 设置每行字符串的长度 //$mail->AddAttachment("f:/test.png"); //可以添加附件 $mail->IsHTML(true); $mail->Send(); echo '邮件已发送'; } catch (phpmailerException $e) { echo "邮件发送失败:".$e->errorMessage(); } ?>