php内置mail()函数发邮件问题

0 投票
30 浏览
最新提问 10月 24, 2017 分类:运行环境 | 用户: 匿名

mai()函数发邮件有如下2个前提:

  • mail()函数不是邮件服务器,是一个简单的发送邮件的封装类。
  • 使用mail()函数发送邮件,需要基于本地或第三方的邮件服务器(SMTP)发送,且必须要有一台不需要验证的SMTP服务器。

2 个回答

0 投票
最新回答 10月 24, 2017 用户: 匿名

推荐使用PEAR扩展中的Mail类,功能强大:可以支持纯文本、HTML格式的邮件;各字段都可设置编码,正确配置不会出现中文乱码情况;可以支持附件等等。注:Mail类依赖  Net/SMTP.php  和 Mail/mime.php ,要一块下载,使用时一块包含进来。

详细安装方法可以在官网查看,http://pear.php.net/package/Mail

结论:这种方式发送邮件无需装任何软件,只需要包含进来一个PHP类,然后多写几行配置代码,就可以了。并且网上有很多示例的代码,很多时候只要复制过来然后修改个别的几个参数就可以用了,所以会很方便,推荐使用此方法。

发表于 10月 24, 2017 用户: 匿名
<?php  
  
// Pear Mail 扩展  
require_once('Mail.php');  
require_once('Mail/mime.php');  
require_once('Net/SMTP.php');  
  
$smtpinfo = array();  
$smtpinfo["host"] = "smtp.163.com";//SMTP服务器  
$smtpinfo["port"] = "25"; //SMTP服务器端口  
$smtpinfo["username"] = "username@163.com"; //发件人邮箱  
$smtpinfo["password"] = "password";//发件人邮箱密码  
$smtpinfo["timeout"] = 10;//网络超时时间,秒  
$smtpinfo["auth"] = true;//登录验证  
//$smtpinfo["debug"] = true;//调试模式  
  
// 收件人列表  
$mailAddr = array('receiver@163.com');  
  
// 发件人显示信息  
$from = "Name <username@163.com>";  
  
// 收件人显示信息  
$to = implode(',',$mailAddr);  
  
// 邮件标题  
$subject = "这是一封测试邮件";  
  
// 邮件正文  
$content = "<h3>随便写点什么</h3>";  
  
// 邮件正文类型,格式和编码  
$contentType = "text/html; charset=utf-8";  
  
//换行符号 Linux: \n  Windows: \r\n  
$crlf = "\n";  
$mime = new Mail_mime($crlf);  
$mime->setHTMLBody($content);  
  
$param['text_charset'] = 'utf-8';  
$param['html_charset'] = 'utf-8';  
$param['head_charset'] = 'utf-8';  
$body = $mime->get($param);  
  
$headers = array();  
$headers["From"] = $from;  
$headers["To"] = $to;  
$headers["Subject"] = $subject;  
$headers["Content-Type"] = $contentType;  
$headers = $mime->headers($headers);  
  
$smtp =& Mail::factory("smtp", $smtpinfo);  
  
  
$mail = $smtp->send($mailAddr, $headers, $body);  
$smtp->disconnect();  
  
if (PEAR::isError($mail)) {  
    //发送失败  
    echo 'Email sending failed: ' . $mail->getMessage()."\n";  
}  
else{  
    //发送成功  
    echo "success!\n";  
}
0 投票
最新回答 10月 24, 2017 用户: 匿名

PHPMailer也是一种发送邮件的方案:http://blog.csdn.net/baidu_30000217/article/details/51550259

欢迎来到 Websoft9知乎 ,有什么不懂的可以尽管在这里提问,你将会收到社区其他成员的回答。
...