三种php发送邮件实例程序

 更新时间:2016年11月25日 15:56  点击:1595
我们利用了三种php发送邮件实例程序哦,下面一个个来实例各种发送的发送邮件哦。

if(send_mail('test@qq.com','邮件主题','邮件内容')==""){
echo "发送成功!<br>";
} else{
echo "发送失败!<br>";
}

<?php
$to = "test@test.com";
$subject = "Test Subject";
$message = "This is the test email.";
$from = "youremail@yourdomain.com";
$headers = "From: $from";
mail($to,$subject,$message,$headers);
?>

 <?php
function send_mail($to, $subject = 'No subject', $body) {
$loc_host = "im286"; //发信计算机名,可随意
$smtp_acc = "test@126.com"; //Smtp认证的用户名
$smtp_pass="******"; //Smtp认证的密码,一般等同pop3密码
$smtp_host="smtp.126.com"; //SMTP服务器地址,类似 smtp.tom.com
$from="test@126.com"; //发信人Email地址,你的发信信箱地址
$headers = "Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64";
$lb=" "; //linebreak

$hdr=explode($lb,$headers); //解析后的hdr
if($body){$bdy = preg_replace("/^./","..",explode($lb,$body));}//解析后的Body

$smtp = array(
//1、EHLO,期待返回220或者250
array("EHLO ".$loc_host.$lb,"220,250","HELO error: "),
//2、发送Auth Login,期待返回334
array("AUTH LOGIN".$lb,"334","AUTH error:"),
//3、发送经过Base64编码的用户名,期待返回334
array(base64_encode($smtp_acc).$lb,"334","AUTHENTIFICATION error : "),
//4、发送经过Base64编码的密码,期待返回235
array(base64_encode($smtp_pass).$lb,"235","AUTHENTIFICATION error : "));
//5、发送Mail From,期待返回250
$smtp[] = array("MAIL FROM: <".$from.">".$lb,"250","MAIL FROM error: ");
//6、发送Rcpt To。期待返回250
$smtp[] = array("RCPT TO: <".$to.">".$lb,"250","RCPT TO error: ");
//7、发送DATA,期待返回354
$smtp[] = array("DATA".$lb,"354","DATA error: ");
//8.0、发送From
$smtp[] = array("From: ".$from.$lb,"","");
//8.2、发送To
$smtp[] = array("To: ".$to.$lb,"","");
//8.1、发送标题
$smtp[] = array("Subject: ".$subject.$lb,"","");
//8.3、发送其他Header内容
foreach($hdr as $h) {$smtp[] = array($h.$lb,"","");}
//8.4、发送一个空行,结束Header发送
$smtp[] = array($lb,"","");
//8.5、发送信件主体
if($bdy) {foreach($bdy as $b) {$smtp[] = array(base64_encode($b.$lb).$lb,"","");}}
//9、发送“.”表示信件结束,期待返回250
$smtp[] = array(".".$lb,"250","DATA(end)error: ");
//10、发送Quit,退出,期待返回221
$smtp[] = array("QUIT".$lb,"221","QUIT error: ");

//打开smtp服务器端口
$fp=@fsockopen($smtp_host, 25);
if(!$fp) echo "<b>Error:</b> Cannot conect to ".$smtp_host."<br>";
while($result = @fgets($fp, 1024)){if(substr($result,3,1) == " ") { break; }}

$result_str="";
//发送smtp数组中的命令/数据
foreach($smtp as $req){
//发送信息
@fputs($fp, $req[0]);
//如果需要接收服务器返回信息,则
if($req[1]){
//接收信息
while($result = @fgets($fp, 1024)){
if(substr($result,3,1) == " ") { break; }
};
if (!strstr($req[1],substr($result,0,3))){
$result_str.=$req[2].$result."<br>";
}
}
}
//关闭连接
@fclose($fp);
return $result_str;
}
?>

$_SERVER['HTTP_ACCEPT_LANGUAGE']//浏览器语言
$_SERVER['REMOTE_ADDR'] //当前用户 IP 。
$_SERVER['REMOTE_HOST'] //当前用户主机名
$_SERVER['REQUEST_URI'] //URL

$_SERVER['REMOTE_PORT'] //端口。
$_SERVER['SERVER_NAME'] //服务器主机的名称。
$_SERVER['PHP_SELF']//正在执行脚本的文件名
$_SERVER['argv'] //传递给该脚本的参数。
$_SERVER['argc'] //传递给程序的命令行参数的个数。
$_SERVER['GATEWAY_INTERFACE']//CGI 规范的版本。
$_SERVER['SERVER_SOFTWARE'] //服务器标识的字串
$_SERVER['SERVER_PROTOCOL'] //请求页面时通信协议的名称和版本
$_SERVER['REQUEST_METHOD']//访问页面时的请求方法
$_SERVER['QUERY_STRING'] //查询(query)的字符串。
$_SERVER['DOCUMENT_ROOT'] //当前运行脚本所在的文档根目录
$_SERVER['HTTP_ACCEPT'] //当前请求的 Accept: 头部的内容。
$_SERVER['HTTP_ACCEPT_CHARSET'] //当前请求的 Accept-Charset: 头部的内容。
$_SERVER['HTTP_ACCEPT_ENCODING'] //当前请求的 Accept-Encoding: 头部的内容
$_SERVER['HTTP_CONNECTION'] //当前请求的 Connection: 头部的内容。例如:“Keep-Alive”。
$_SERVER['HTTP_HOST'] //当前请求的 Host: 头部的内容。
$_SERVER['HTTP_REFERER'] //链接到当前页面的前一页面的 URL 地址。
$_SERVER['HTTP_USER_AGENT'] //当前请求的 User_Agent: 头部的内容。
$_SERVER['HTTPS']//如果通过https教程访问,则被设为一个非空的值(on),否则返回off
$_SERVER['SCRIPT_FILENAME'] #当前执行脚本的绝对路径名。
$_SERVER['SERVER_ADMIN'] #管理员信息
$_SERVER['SERVER_PORT'] #服务器所使用的端口
$_SERVER['SERVER_SIGNATURE'] #包含服务器版本和虚拟主机名的字符串。
$_SERVER['PATH_TRANSLATED'] #当前脚本所在文件系统(不是文档根目录)的基本路径。
$_SERVER['SCRIPT_NAME'] #包含当前脚本的路径。这在页面需要指向自己时非常有用。
$_SERVER['PHP_AUTH_USER'] #当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是用户输入的用户名。
$_SERVER['PHP_AUTH_PW'] #当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是用户输入的密码。
$_SERVER['AUTH_TYPE'] #当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是认证的类型

<?php教程  
$doc = new DOMDocument();  
$doc->load( 'books.xml' );  
$books = $doc->getElementsByTagName( "book" );  
foreach( $books as $book )  
{  
$authors = $book->getElementsByTagName( "author" );  
$author = $authors->item(0)->nodeValue;  
  
$publishers = $book->getElementsByTagName( "publisher" );  
$publisher = $publishers->item(0)->nodeValue;  
  
$titles = $book->getElementsByTagName( "title" );  
$title = $titles->item(0)->nodeValue;  
  
echo "$title - $author - $publisher ";  
echo "<br>";  
}  
?>  

xml文件

<books>  
<book>  
<author>Jack Herrington</author>  
<title>PHP Hacks</title>  
<publisher>O'Reilly</publisher>  
</book>  
<book>  
<author>Jack Herrington</author>  
<title>Podcasting Hacks</title>  
<publisher>O'Reilly</publisher>  
</book>  
</books>

1。__construct()
实例化对象时被调用,
当__construct和以类名为函数名的函数同时存在时,__construct将被调用,另一个不被调用。

2。__destruct()

当删除一个对象或对象操作终止时被调用。

3。__call()
对象调用某个方法,
若方法存在,则直接调用;
若不存在,则会去调用__call函数。

4。__get()
读取一个对象的属性时,
若属性存在,则直接返回属性值;
若不存在,则会调用__get函数。

5。__set()
设置一个对象的属性时,
若属性存在,则直接赋值;
若不存在,则会调用__set函数。

6。__toString()

打印一个对象的时被调用。如echo $obj;或print $obj;

7。__clone()

克隆对象时被调用。如:$t=new Test();$t1=clone $t;

8。__sleep()

serialize之前被调用。若对象比较大,想删减一点东东再序列化,可考虑一下此函数。

9。__wakeup()

unserialize时被调用,做些对象的初始化工作。

10。__isset()
检测一个对象的属性是否存在时被调用。如:isset($c->name)。

11。__unset()
unset一个对象的属性时被调用。如:unset($c->name)。

12。__set_state()
调用var_export时,被调用。用__set_state的返回值做为var_export的返回值。

13。__autoload()
实例化一个对象时,如果对应的类不存在,则该方法被调用。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.111cn.net/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>php教程 增加数据保存到mysql教程数据实例教程</title>
<style type="text/css教程">
<!--
body {
 margin-left: 0px;
 margin-top: 10px;
 margin-right: 0px;
 margin-bottom: 0px;
}
td{
 padding:2px;
 }
body,td,th {
 font-size: 12px;
}
-->
</style></head>

<body>
<table width="98%" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#F2F2F2" >
  <form id="form1" name="form1" method="post" action=""><tr>
    <td width="15%" height="26" align="center" bgcolor="#FFFFFF">标 题:</td>
    <td width="85%" bgcolor="#FFFFFF">
      <label>
        <input type="text" name="title" />
        </label>    </td>
  </tr>
    <tr>
      <td height="26" align="center" bgcolor="#FFFFFF">关键词:</td>
      <td bgcolor="#FFFFFF"><label>
        <input name="keyword" type="text" id="keyword" size="50" />
      </label></td>
    </tr>
    <tr>
      <td height="26" align="center" bgcolor="#FFFFFF">描 述:</td>
      <td bgcolor="#FFFFFF"><label>
        <textarea name="desc" cols="50" rows="4" id="desc"></textarea>
      </label></td>
    </tr>
    <tr>
    <td height="26" align="center" bgcolor="#FFFFFF">说明简介:</td>
    <td bgcolor="#FFFFFF"><label>
      <textarea name="body" cols="80" rows="8"></textarea>
    </label></td>
  </tr>
  <tr>
    <td height="26" align="center" bgcolor="#FFFFFF">&nbsp;</td>
    <td bgcolor="#FFFFFF"><label>
      <input type="submit" name="Submit" value="保存数据" />
    </label></td>
  </tr>
  </form>
</table>
<?php
if( $_POST )
{
 
 mysql_connect('localhost','root','root');
 mysql_select_db('fangke_cc');
 mysql_query("set names 'gbk'");
 

 $title = htmlspecialchars(isset($_POST['title'])?$_POST['title']:'');
 $keyword = htmlspecialchars(isset($_POST['keyword'])?$_POST['keyword']:'');
 $desc = htmlspecialchars(isset($_POST['desc'])?$_POST['desc']:'');
 $body = htmlspecialchars(isset($_POST['body'])?$_POST['body']:'');
 
 
 if( $title == ""  || strlen( $title ) > 200 )
 {
  exit('<script>alert("标题不合法,重新输入信息");history.back();</script>');
 }
 else if( $body == "" || strlen( $body ) >2048 )
 {
  exit('<script>alert("内空太长,重新输入信息");history.back();</script>');
 }
 else
 {
  $time = time();
  $body=preg_replace("/$title/","<h1>".$title."</h1>",$body,1);
  $sql = "insert into su_zt(title,description,keyword,body,datetimes) values('$title','$desc','$keyword','$body','$time')";
  mysql_query( $sql ) or die(mysql_error().$sql);
  die('<script>alert("保存成功");location="'.$_SERVER['HTTP_REFERER'].'";</script>');
 }
}
?>

su_zt表结构

CREATE TABLE IF NOT EXISTS `su_zt` (
  `id` int(8) NOT NULL auto_increment,
  `title` varchar(200) character set gb2312 default NULL,
  `keyword` varchar(60) character set gb2312 default NULL,
  `description` text character set gb2312,
  `body` text character set gb2312,
  `datetimes` int(4) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
</body>
</html>
本站原创教程,转载注明来源http://www.111cn.net,否则必究

[!--infotagslink--]

相关文章

  • php邮件发送的两种方式

    这篇文章研究的主要内容就是使用PHP来发送电子邮件,总结为以下两种方法:一、使用PHP内置的mail()函数<&#63;php $to = "test@163.com"; //收件人 $subject = "Test"; //主题 $message = "This is a test mail!"; //正文...2015-10-30
  • c# 实现发送邮件的功能

    这篇文章主要介绍了c# 如何实现发送邮件的功能,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下...2020-07-07
  • php邮件发送的两种方式

    这篇文章研究的主要内容就是使用PHP来发送电子邮件,总结为以下两种方法:一、使用PHP内置的mail()函数<&#63;php $to = "test@163.com"; //收件人 $subject = "Test"; //主题 $message = "This is a test mail!"; //正文...2015-10-30
  • mysql备份的三种方式详解

    一、备份的目的做灾难恢复:对损坏的数据进行恢复和还原需求改变:因需求改变而需要把数据还原到改变以前测试:测试新功能是否可用二、备份需要考虑的问题可以容忍丢失多长时间的数据;恢复数据要在多长时间内完; 恢复的时候...2013-10-04
  • c#使用netmail方式发送邮件示例

    这篇文章主要介绍了c#使用netmail方式发送邮件的示例,大家参考使用吧...2020-06-25
  • PHPMailer在SAE上无法发送邮件的解决方法

    PHPMailer在SAE上无法发送邮件怎么回事呢,我们以前在php5.2.7版本中使用了PHPMailer是可以发,但移到sae中发现无法发邮件了,那么此问题如何解决 在SAE上直接用5.2.7...2016-11-25
  • node.js 基于 STMP 协议和 EWS 协议发送邮件

    这篇文章主要介绍了node.js 基于 STMP 协议和 EWS 协议发送邮件的示例,帮助大家更好的理解和使用node.js,感兴趣的朋友可以了解下...2021-02-15
  • 整理几个android后台发送邮件的方法

    本文我们整理了三个android后台发送邮件的方法及示例,第一个是不借助Intent在android后台发送Email,第二个是用在收集应用的异常信息,第三个是分享一个android后台发送邮...2016-09-20
  • 网上找到的两个PHP发送邮件的例子,很不错,贴出来给初学者参考吧(不知道是否有兄弟曾贴过),呵呵(2

    Advanced Example Here we will show the full capabilities of the PHP mail function. PHP Code: <?php echo "<html><body>"; $recipient = "Kris Arndt <karn@nu...2016-11-25
  • Perl中使用MIME::Lite发送邮件实例

    这篇文章主要介绍了Perl中使用MIME::Lite发送邮件实例,本文介绍了使用sendmail方式发送、发送HTML格式邮件、smtp方式发送邮件等内容,需要的朋友可以参考下...2020-06-29
  • Delphi7中群发Email邮件的方法

    这篇文章主要介绍了Delphi7中群发Email邮件的方法,涉及邮件服务器软件的使用,电子邮件的判断与发送功能的实现,是非常实用的技巧,需要的朋友可以参考下...2020-06-30
  • PHP利用Jmail组件实现发送邮件

    学过asp的朋友可能知道jmail组件是使用在asp中一个常用的邮箱发送功能,在php中如果想调用jmail功能我们需要使用com组件来操作。 我们先来介绍格式 代码如...2016-11-25
  • phpMailer 发送邮件

    //原创:www.111cn.net 注明:转载说明来处www.111cn.net // 昨天听一网友说用php 里面的mail发邮件发不出去,我想一般都是发不了的,现在大多数据邮件提供商都不准那样了...2016-11-25
  • C#编程实现发送邮件的方法(可添加附件)

    这篇文章主要介绍了C#编程实现发送邮件的方法,具备添加附件的功能,涉及C#文件传输及邮件发送的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • php中利用curl smtp发送邮件实例

    本文章来介绍人一下关于与我们不同的发送邮件的方法我们来利用php curl stmp来实现邮件的发送程序。 $ telnet 邮箱SMTP服务地址 25 Trying 邮箱服务IP地址......2016-11-25
  • php定时发送邮件

    <?php // 请求 PHPmailer类 文件 require_once("class.phpmailer.php"); //发送Email函数 function smtp_mail ( $sendto_email, $subject, $body, $extra_hd...2016-11-25
  • 用PHP发送有附件的电子邮件

    我经常听到这样一个问题:"我有一个从网站发来的合同。我如何给通过表单发送的电子邮件增加一个附件呢?" 首先我要说的是要做到这个没有什么简单的办法。你要很好的理解PH...2016-11-25
  • C# Email发送邮件 对方打开邮件可获得提醒

    这篇文章主要为大家详细介绍了C# Email发送邮件功能,对方打开通知你,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25
  • Drupal实现邮件订阅推送系统的解决方案

    用Drupal如何做一个邮件订阅推送系统? 本文我们将提供解决方案,用drupal搭建一个邮件推送系统,实现用户订阅邮件的发送。 电子邮件营销称为EDM,即Email Direct Marke...2016-11-25
  • php使用pear_smtp发送邮件

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