php使用pear_smtp发送邮件


Posted in PHP onApril 15, 2016

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程序设计有所帮助。

PHP 相关文章推荐
简单实用的网站PHP缓存类实例
Jul 18 PHP
PHP图片库imagemagick安装方法
Sep 23 PHP
jquery+php+ajax显示上传进度的多图片上传并生成缩略图代码
Oct 15 PHP
PHP中使用虚代理实现延迟加载技术
Nov 05 PHP
php动态变量定义及使用
Jun 10 PHP
使用xampp搭建运行php虚拟主机的详细步骤
Oct 21 PHP
php实现图片缩略图的方法
Mar 29 PHP
PHP实现的同步推荐操作API接口案例分析
Nov 30 PHP
php简单随机字符串生成方法示例
Apr 19 PHP
php 数组元素快速去重
May 05 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
Feb 23 PHP
浅析php如何实现爬取数据原理
Sep 27 PHP
PHP使用pear实现mail发送功能 windows环境下配置pear
Apr 15 #PHP
php生成图片验证码的方法
Apr 15 #PHP
PHP抓取淘宝商品的用户晒单评论+图片+搜索商品列表实例
Apr 14 #PHP
php上传大文件设置方法
Apr 14 #PHP
什么是OneThink oneThink后台添加插件步骤
Apr 13 #PHP
java模拟PHP的pack和unpack类
Apr 13 #PHP
php远程下载类分享
Apr 13 #PHP
You might like
php 防止单引号,双引号在接受页面转义
2008/07/10 PHP
php数组函数序列 之array_count_values() 统计数组中所有值出现的次数函数
2011/10/29 PHP
php给一组指定关键词添加span标签的方法
2015/03/31 PHP
利用php操作memcache缓存的基础方法示例
2017/08/02 PHP
php+mysql+ajax 局部刷新点赞/取消点赞功能(每个账号只点赞一次)
2020/07/24 PHP
javascript中实现兼容JAVA的hashCode算法代码分享
2020/08/11 Javascript
JavaScript中的无阻塞加载性能优化方案
2014/10/10 Javascript
JS实现无限级网页折叠菜单(类似树形菜单)效果代码
2015/09/17 Javascript
JS高仿抛物线加入购物车特效实现代码
2017/02/20 Javascript
深究AngularJS中$sce的使用
2017/06/12 Javascript
详解vue + vuex + directives实现权限按钮的思路
2017/10/24 Javascript
解决Layui选择全部,换页checkbox复选框重新勾选的问题方法
2018/08/14 Javascript
在Create React App中启用Sass和Less的方法示例
2019/01/16 Javascript
如何在微信小程序中实现Mixins方案
2019/06/20 Javascript
浅谈在vue-cli3项目中解决动态引入图片img404的问题
2020/08/04 Javascript
TypeScript魔法堂之枚举的超实用手册
2020/10/29 Javascript
[34:47]完美世界DOTA2联赛PWL S2 Magma vs LBZS 第一场 11.18
2020/11/18 DOTA
python中协程实现TCP连接的实例分析
2018/10/14 Python
Python实现的IP端口扫描工具类示例
2019/02/15 Python
python七夕浪漫表白源码
2019/04/05 Python
Python实现线性判别分析(LDA)的MATLAB方式
2019/12/09 Python
浅谈Django中的QueryDict元素为数组的坑
2020/03/31 Python
Selenium元素定位的30种方式(史上最全)
2020/05/11 Python
Python如何用wx模块创建文本编辑器
2020/06/07 Python
基于Python爬取京东双十一商品价格曲线
2020/10/23 Python
Python paramiko使用方法代码汇总
2020/11/20 Python
原生canvas制作画图小工具的踩坑和爬坑
2020/06/09 HTML / CSS
Yummie官方网站:塑身衣和衣柜必需品
2019/10/29 全球购物
大学生思想汇报范文
2013/12/31 职场文书
西北政法大学自主招生自荐信
2014/01/29 职场文书
春节联欢晚会主持词范文
2014/03/24 职场文书
新颖的化妆品活动方案
2014/08/21 职场文书
授权委托书
2014/09/17 职场文书
CSS3 实现NES游戏机的示例代码
2021/04/21 HTML / CSS
提取视频中的音频 Python只需要三行代码!
2021/05/10 Python
《堡垒之夜》联动《刺客信条》 4月7日正式上线
2022/04/06 其他游戏