首页 后端开发 php教程 php多种形式发送邮件(mail qmail邮件系统 phpmailer类)_php实例

php多种形式发送邮件(mail qmail邮件系统 phpmailer类)_php实例

May 17, 2016 am 08:50 AM
phpmailer 发送邮件

1. 使用 mail() 函数

没什么好讲的,就是使用系统自带的smtp系统来发送,一般是使用sendmail来发。这个按照各个系统不同而定。使用参考手册。

2. 使用管道的形式

昨天刚测试成功,使用本地的qmail来发送邮件。

复制代码 代码如下:

/* 使用qmail发送邮件函数 */ 
function send_check_mail($email, $subject,$uid,$buffer) 

 $command =  "/var/qmail/bin/qmail-inject ".$email; //qmail程式地址,$email是要发送的地址 
 $handle = popen($command, "w"); //打开管道  http://www.cnblogs.com/roucheng/
 if (!$handle) { 
  return false; 
 }  

 $from = "webmaster@unixsky.net"; //发件人 
 fwrite($handle, "From: ".$from."\n"); //往管道写数据 
 fwrite($handle, "Return-Path: ".$from."\n"); 
 fwrite($handle, "To: ".$uid."\n"); 
 fwrite($handle, "Subject: ".$subject."\n"); 
 fwrite($handle, "Mime-Version: 1.0\n"); 
 fwrite($handle, "Content-Type: text/html; charset=\"gb2312\"\n\n"); 
 fwrite($handle, $buffer."\n"); 
 pclose($handle); //关闭管道 

 return true; 


------------------测试发送邮件: 

//发送邮件 

$subject = "测试邮件"; 

$uid = $_POST['uid']; //from信息 
$content = "".$u_email  

   ." 你好!

谢谢,本邮件测试!"; //内容信息 

$u_email = "hren@yahoo.com.cn"; //发送到的邮箱 
if (send_check_mail($u_email, $subject, $uid, $content)) { 

 echo "恭喜!发送投票邮件到你的邮箱!

请检查你的邮箱:".$u_email."

". $close; 
 } else { 

 echo "非常不幸,发送投票邮件到你的邮箱失败,请重试或联系研发人员。

". $close; 

}

当然,也能使用相同的方法来处理sendmail的进程来发送邮件。

下面代码示例:

复制代码 代码如下:

$pp = popen("/usr/sbin/sendmail -t", "w") or die("Cannot fork sendmail"); 
fputs($pp, "To: sterling@designmultimedia.com\r\n"); 
fputs($pp, "Reply-to: $senders_email\r\n"); 
fputs($pp, "From: $senders_email\r\n"); 
fputs($pp, "Subject The Results of your form\r\n\r\n"); 
fputs($pp, "$senders_email sent the fllowing comments:\r\n"); 
fputs($pp, $comments); 
pclose($pp) or die("Cannot close pipe to sendmail"); 
?>

其实这种管道的方法比较底层,取决于你所调用程式的稳定性。所以是一种可选的发送邮件的方式。


3. 使用phpmailer类

是个开源的发送邮件类,主站:http://phpmailer.sourceforge.net

里面是两个文件,一个是class.smtp.php,更有以个是class.phpmailer.php
另外加上官方网站的使用方法:
Examples using phpmailer
1. Advanced ExampleThis demonstrates sending out multiple email messages with binary attachments from a MySQL database with multipart/alternative support.

复制代码 代码如下:

require("class.phpmailer.php"); 

$mail = new phpmailer(); 

$mail->来自     = "list@example.com"; 
$mail->FromName = "列表管理员"; 
$mail->Host     = "smtp1.example.com;smtp2.example.com"; 
$mail->Mailer = "smtp"; 

@MYSQL_CONNECT("localhost","root","password"); 
@mysql_select_db("my_company"); 
$query?=?SELECT full_name, email,?hoto?ROM 员工?HERE?d=$id"; 
$result??MYSQL_QUERY($query); 

while ($row = mysql_fetch_array ($result)) 

    // HTML 正文 
    $body  = "Hello $row["full_name"] . ;/font>,

"; 
    $body .= "您的;
    $body .= "phpmailer 列表管理器"; 

    // 纯文本文本正文(适用于无法读取 HTML 的邮件客户端) 
    $text_body  = "Hello " . $row["full_name"] . ", \n\n"; 
    $text_body .= "您的个人照片message.\n\n"; 
    $text_body .= "此致,\n"; 
    $text_body .= "phpmailer 列表管理器"; 

    $mail->Body    = $body ; 
    $mail->AltBody = $text_body; 
    $mail->AddAddress($row["email"], $row["full_name"]); 
    $mail->AddStringAttachment ($row["photo"], "YourPhoto.jpg"); 

    if(!$mail->Send()) 
        echo "发送至 " $ 时出现邮件错误。 row["email"] . "
"; 

    // 清除下一个循环的所有地址和附件 
    $mail->ClearAddresses(); 
    $mail->清除附件(); 
}

2.通过继承来扩展 phpmailerExtending 类是面向对象编程最强大的功能之一。它允许您对原始类进行更改以供您个人使用,而无需修改原始类。另外,这很容易做到。我提供了一个例子:

这是一个扩展 phpmailer 类并为特定站点设置默认值的类:

PHP 包含文件:mail.inc.php

复制代码 代码如下:
require("class.phpmailer.php");

复制代码代码如下:
class my_phpmailer extends phpmailer { 
    // 设置默认值所有新对象的变量
    var $From     = "from@example.com"; 
    var $FromName = "Mailer"; 
    var $Host     = "smtp1.example.com;smtp2.example.com"; 
    var $Mailer   = "smtp";                         // IsSMTP() 的替代方法 
    var $WordWrap = 75; 

    // 替换默认的 error_handler
    function error_handler($msg) { 
        print("My Site Error"); 
        print("描述:"); 
        printf("%s", $msg); 
        退出; 
    } 

    // 创建一个附加函数 
    function do_something($something) { 
        // 将新代码放在这里 
    } 
}

现在网站中有一个普通的 PHP 页面,它将具有上面设置的所有默认值:

普通 PHP 文件:mail_test.php

复制代码代码如下:

require("mail.inc.php"); 

// Instantiate your new class 
$mail = new my_phpmailer; 

// Now you only need to add the necessary stuff 
$mail->AddAddress("josh@example.com", "Josh Adams"); 
$mail->Subject = "Here is the subject"; 
$mail->Body    = "This is the message body"; 
$mail->AddAttachment("c:/temp/11-10-00.zip", "new_name.zip");  // optional name 

if(!$mail->Send()) 

   echo "There was an error sending the message"; 
   exit; 


echo "Message was sent successfully";

4. 使用PEAR::Net_SMTP组件

PEAR真是个好东西,可能非常多人都不怎么用,至少我目前使用他的DB类,发送邮件类都不错。

需要Net_SMTP类,能去 http://pear.php.net 下载,Net_SMTP类的使用手册:

http://pear.php.net/manual/en/package.networking.net-smtp.php

我使用上面几个类,这个是最佳的,不管是速度还是别的,不过操作涉及到一些简单的smtp协议。

我的使用代码:

复制代码 代码如下:

//------------------------------------------ 

require_once 'Net/SMTP.php'; //加载类库 

 
$subject = "测试邮件"; 

$uid = $_POST['uid']; //from信息 
$content = "".$u_email  

   ." 你好!

谢谢,本邮件测试!"; //内容信息 

$u_email = "hren@yahoo.com.cn"; //发送到的邮箱 

$smtp = new Net_SMTP('192.168.0.1'); //smtp服务器 
$smtp->connect(); //连接服务器 
$smtp->helo('unixsky.net'); //发送HELO信息给服务器 
$smtp->mailFrom('hren@unixsky.net'); //发件人地址 
$smtp->rcptTo($u_email); //收件人地址 
$date = date('r'); //获取发信日期 
$smtp->data("Date: $date\r\nFrom: vdddote@eyou.net\r\nTo: $u_email\r\nSubject: $subject\r\nContent-Type: text/html; charset=\"gb2312\"\r\n\r\n$content\r\n"); //添加发送数据并且发送 
$smtp->disconnect(); //关闭连接
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

PHP开发实践:使用PHPMailer发送邮件到MySQL数据库中的用户 PHP开发实践:使用PHPMailer发送邮件到MySQL数据库中的用户 Aug 05, 2023 pm 06:21 PM

PHP开发实践:使用PHPMailer发送邮件到MySQL数据库中的用户引言:在现代互联网建设中,邮件是一种重要的沟通工具。无论是用户注册、密码重置,还是电子商务中的订单确认,发送电子邮件都是必不可少的功能。本文将介绍如何使用PHPMailer来发送电子邮件,并将邮件信息保存到MySQL数据库中的用户信息表中。一、安装PHPMailer库PHPMailer是

PHP使用PHPMailer发送多人邮件的方法和步骤 PHP使用PHPMailer发送多人邮件的方法和步骤 May 22, 2023 pm 06:10 PM

在Web应用程序中,往往需要将邮件一次性发送给多个收件人。PHP是一种很流行的Web开发语言,而PHPMailer是一种常见的发送邮件的PHP类库。PHPMailer提供了丰富的接口,使得在PHP应用程序中发送邮件变得更加方便和易于使用。在本篇文章中,我们将介绍如何使用PHPMailer向多个收件人发送邮件的方法和步骤。下载PHPMailer首先需要在官网(

掌握PHP和PHPMAILER:如何实现邮件发送的自动回复功能? 掌握PHP和PHPMAILER:如何实现邮件发送的自动回复功能? Jul 22, 2023 am 11:57 AM

掌握PHP和PHPMAILER:如何实现邮件发送的自动回复功能?在现代社会中,电子邮件成为了人们日常沟通的重要方式之一。许多网站或者企业都需要通过邮件与用户进行沟通和交流,并且自动回复邮件变得非常重要。本文将介绍如何使用PHP和PHPMailer库实现邮件发送的自动回复功能。第一步:获取用户的邮件信息首先,我们需要获取用户的邮件信息。在网站或者应用程序中,用

如何使用PHP和PHPMAILER发送带有内嵌图片的HTML邮件? 如何使用PHP和PHPMAILER发送带有内嵌图片的HTML邮件? Jul 22, 2023 am 11:29 AM

如何使用PHP和PHPMAILER发送带有内嵌图片的HTML邮件?HTML邮件是一种更加丰富和个性化的邮件形式,可以在邮件中插入图片、链接和样式。而内嵌图片是指在HTML邮件中直接将图片作为邮件的一部分发送,而不是通过附件方式发送。在PHP中,我们可以借助PHPMAILER来发送带有内嵌图片的HTML邮件。PHPMAILER是一个功能强大的PHP邮件发送类库

如何使用Flask-Mail发送电子邮件 如何使用Flask-Mail发送电子邮件 Aug 02, 2023 am 10:17 AM

如何使用Flask-Mail发送电子邮件随着互联网的发展,电子邮件已经成为了人们沟通的重要工具。在开发Web应用中,有时候我们需要在特定的场景下发送电子邮件,比如用户注册成功后发送欢迎邮件,或者用户忘记密码时发送重置密码邮件等。Flask是一款简单而又灵活的PythonWeb框架,而Flask-Mail是Flask框架下用于发送邮件的扩展库,本文将介绍如何

PHP和PHPMAILER:如何实现邮件发送的防垃圾邮件功能? PHP和PHPMAILER:如何实现邮件发送的防垃圾邮件功能? Jul 22, 2023 am 11:46 AM

PHP和PHPMAILER:如何实现邮件发送的防垃圾邮件功能?引言:在互联网时代,电子邮件已经成为了我们日常生活和工作中不可或缺的一部分。然而,随着电子邮件的普及和使用,垃圾邮件问题日益严重,给用户带来了诸多困扰。为了解决这个问题,本文将介绍如何利用PHP和PHPMailer库实现邮件发送的防垃圾邮件功能。一、了解垃圾邮件垃圾邮件(Spam),指的是那些未经

Python连接阿里云接口,实现邮件发送功能 Python连接阿里云接口,实现邮件发送功能 Jul 05, 2023 pm 04:33 PM

Python连接阿里云接口,实现邮件发送功能阿里云提供了一系列的服务接口,其中包括了邮件发送服务。通过Python脚本连接阿里云接口,我们可以实现邮件的快速发送。本篇文章将向您展示如何使用Python脚本连接阿里云接口,并实现邮件发送功能。首先,我们需要在阿里云上申请邮件发送服务,获取相应的接口信息。在阿里云管理控制台中,选择邮件推送服务,然后创建一个新的邮

如何在CakePHP中使用PHPMailer? 如何在CakePHP中使用PHPMailer? Jun 04, 2023 pm 01:10 PM

CakePHP是一个基于MVC模式的PHP开源框架,旨在为开发者提供高效、可扩展、易于维护的Web应用程序开发环境。其中,邮件功能一直是Web应用程序的重要组成部分之一。为了方便开发者使用邮件功能,在CakePHP中已经封装了PHPMailer类库。PHPMailer是一款常用的邮件发送类库,支持发送HTML邮件、附件、抄送、邮件队列和SMTP验证等功能。本

See all articles