pear在php中的用法,php使用pear_smtp发送邮件

这篇文章主要介绍了php使用pear_smtp发送邮件的相关资料,内容很丰富,感兴趣的小伙伴们可以参考一下

PHP自带的mail函数比较蛋疼,在win下配置了sendmail还是无法发送邮件。而使用第三方的pear/mail可以直接通过smtp连接邮件发送服务器。如(smtp.163.com)。从而没有必要在本机上安装sendmail等类似软件。

确保PEAR Mail包已经安装。

require_once "vendor/autoload.php";

$from = "test";

$to = "test ";

$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("

" . $mail->getMessage() . "

");

} else {

echo("

Message successfully sent!

");

}

?>

这是非加密方式。

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 ";

$to = "To: To Name ";

$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("无法设置发送者邮箱为 \n");

}

/* 设置接收邮件者 */

foreach ($rcpt as $to) {

if (PEAR::isError($res = $smtp->rcptTo($to))) {

die("邮件无法投递到 : " . $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程序设计有所帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值