温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么在php中使用pear_smtp实现一个邮件发送功能

发布时间:2020-12-22 16:24:35 来源:亿速云 阅读:191 作者:Leah 栏目:开发技术

怎么在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: "/path2:/path3"  include_path = ".:./php/pear" ; ; Windows: "\path2;\path3" ;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 "发送成功!"; ?>

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI