您好,欢迎访问一九零五行业门户网

php发送邮件二种方法 php使用smtp发送邮件

原文:http://www.jbxue.com/php/25502.html
本文介绍了php发送邮件的两种方法,分别是使用php内置的mail()函数发送邮件,使用封装smtp协议的邮件类发送邮件,推荐使用smtp协议封装的邮件类实现邮件发送。
php如何发送邮件呢?方法有很多,但用的最多的还是使用smtp协议来发送邮件,一起来学习下吧。
专题推荐:php发邮件代码大全
一、使用php内置的mail()函数
复制代码 代码示例:
$to = test@163.com; //收件人 
$subject = test; //主题 
$message = this is a test mail!; //正文 
mail($to,$subject,$message); 
直接报错:
warning: mail() [function.mail]: failed to connect to mailserver at localhost port 25, verify your smtp and smtp_port setting in php.ini or use ini_set() ind:/www/zend/email/email.php on line 10
本地需要有smtp服务器,代码修改为:
复制代码 代码示例:
$to = test@163.com;//收件人 
$subject = test;//邮件主题 
$message = this is a test mail!;//邮件正文 
ini_set('smtp','smtp.163.com');//发件smtp服务器 
ini_set('smtp_port',25);//发件smtp服务器端口 
ini_set('sendmail_from',admin@163.com);//发件人邮箱 
mail($to,$subject,$message); 
继续错误:
warning: mail() [function.mail]: smtp server response: 553 authentication is required,smtp2,dngowkd7v5btdo9nnplvba--.1171s2 1301220947 ind:/www/zend/email/email.php on line 9
需要验证信息,怎么写验证信息呢?在哪里配置呢?
使用mail()函数发送邮件就必须要有一台无需smtp验证就可以发信的邮件服务器。但现在的smtp邮件服务器基本上都是需要验证的,所以要想使用它发邮件就只能自己在本地搭一个不需要验证的smtp服务器。
结论:使用mail()函数发送邮件,就必须要有一台不需要验证的smtp服务器。
二、使用封装smtp协议的邮件类
建议使用smtp协议来发送邮件。
比较推荐使用pear扩展中的mail类,功能强大:可以支持纯文本、html格式的邮件;各字段都可设置编码,正确配置不会出现中文乱码情况;可以支持附件等等。
在服务器可以使用 pear install mail 命令快速安装,没有足够服务器权限的同学也可以直接下载类的php源码包含进来就可以了。
注:mail类依赖  net/smtp.php  和 mail/mime.php ,要一块下载,使用时一块包含进来。
详细安装方法可以在官网查看,http://pear.php.net/package/mail。
例子,mail类发送邮件的方法。
复制代码 代码示例:
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; 
}
以上就介绍了php发送邮件二种方法 php使用smtp发送邮件,包括了方面的内容,希望对php教程有兴趣的朋友有所帮助。
其它类似信息

推荐信息