php多种形式发送邮件(mail qmail邮件系统 phpmailer类)_php实例
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->清除附件();
}
这是一个扩展 phpmailer 类并为特定站点设置默认值的类:
PHP 包含文件:mail.inc.php
// 设置默认值所有新对象的变量
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 文件: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(); //关闭连接

热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

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

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

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

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

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

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

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

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