php使用pear_smtp发送邮件
发布:smiling 来源: PHP粉丝网 添加日期:2021-07-28 17:24:35 浏览: 评论:0
这篇文章主要介绍了php使用pear_smtp发送邮件的相关资料,内容很丰富,感兴趣的小伙伴们可以参考一下。
PHP自带的mail函数比较蛋疼,在win下配置了sendmail还是无法发送邮件。而使用第三方的pear/mail可以直接通过smtp连接邮件发送服务器。如(smtp.163.com)。从而没有必要在本机上安装sendmail等类似软件。
确保PEAR Mail包已经安装。
- <?php
- require_once "vendor/autoload.php";
- $from = "test<test@163.com>";
- $to = "test <test@outlook.com>";
- $subject = "Hi!";
- $body = "Hi,\n\nHow are you?";
- $host = "smtp.163.com";
- $port = "25";
- $username = "test@163.com";
- $password = "test123";
- $headers = array ('From' => $from,
- 'To' => $to,
- 'Subject' => $subject);
- $smtp = Mail::factory('smtp',
- array ('host' => $host,
- 'port' => $port,
- 'auth' => true,
- // 'debug'=>true,
- 'username' => $username,
- 'password' => $password));
- $mail = $smtp->send($to, $headers, $body);
- if (PEAR::isError($mail)) {
- echo("<p>" . $mail->getMessage() . "</p>");
- } else {
- echo("<p>Message successfully sent!</p>");
- }
- ?>
这是非加密方式。
PHPer 多数使用 mail 函数来发送邮件,但我们可以使用其他的 SMTP 服务器来发送,这里推荐使用 PEAR's mail package 来发送邮件。
- $subject = "This mail is sent from SMTP.";
- $mail_body = "This is the body of the mail which is sent using SMTP.";
- $from = "From: From Name <fromaddress@xpertdeveloper.com>";
- $to = "To: To Name <toaddress@xpertdeveloper.com>";
- $receiver = "toaddress@xpertdeveloper.com";
- // Setting up the headers
- $headers["From"] = $from;
- $headers["To"] = $to;
- $headers["Subject"] = $subject;
- $headers["Reply-To"] = "reply@address.com";
- $headers["Content-Type"] = "text/plain; charset=ISO-2022-JP";
- $headers["Return-path"] = "returnpath@address.com";
- // Setting up the SMTP setting
- $smtp_info["host"] = "smtp.server.com";
- $smtp_info["port"] = "25";
- $smtp_info["auth"] = true;
- $smtp_info["username"] = "smtp_user";
- $smtp_info["password"] = "smtp_password";
- // Creating the PEAR mail object :
- $mail_obj =& Mail::factory("smtp", $smtp_info);
- // Sending the mail now
- $mail_sent = $mail_obj->send($receiver, $headers, $mail_body);
- // If any error the see for that here:
- if (PEAR::isError($mail_sent)) { print($mail_sent->getMessage());}
第三个案例:
在使用以下源代码前,请配置好pear的路径,下载net_smtp包
在php.ini文件中根据你的操作系统选择不同的设置方法
- ; UNIX: "/path1:/path2"
- include_path = ".:./php/pear"
- ;
- ; Windows: "\path1;\path2"
- ;include_path = ".;c:\php\pear"
- require 'Net/SMTP.php';
- $host = '126.com';//smtp服务器的ip或域名
- $username= 'arcow';//登陆smtp服务器的用户名
- $password= 'secret';//登陆smtp服务器的密码
- $from = 'arcow@126.com'; //谁发的邮件
- $rcpt = array('test@test.com', 'arcow@126.com');//可设多个接收者
- $subj = "Subject: 你是谁\n";//主题
- $body = "test it";//邮件内容
- /* 建立一个类 */
- if (! ($smtp = new Net_SMTP($host))) {
- die("无法初始化类Net_SMTP!\n");
- }
- /* 开始连接SMTP服务器*/
- if (PEAR::isError($e = $smtp->connect())) {
- die($e->getMessage() . "\n");
- }
- /* smtp需要身份验证 */
- $smtp->auth($username,$password,"PLAIN");
- /*设置发送者邮箱 */
- if (PEAR::isError($smtp->mailFrom($from))) {
- die("无法设置发送者邮箱为 <$from>\n");
- }
- /* 设置接收邮件者 */
- foreach ($rcpt as $to) {
- if (PEAR::isError($res = $smtp->rcptTo($to))) {
- die("邮件无法投递到 <$to>: " . $res->getMessage() . "\n");
- }
- }
- /* 开始发送邮件内容 */
- if (PEAR::isError($smtp->data($subj . "\r\n" . $body))) {
- die("Unable to send data\n");
- }
- /* 断开连接 */
- $smtp->disconnect();
- echo "发送成功!";
- ?>
以上就是本文的全部内容,php利用pear_smtp发送邮件的三个案例,希望对大家学习php程序设计有所帮助。
Tags: pear_smtp
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)