tilg 发表于 2015-11-25 13:19:35

韩顺平zend+framework sendmail 视频教程 笔记心得 源代码下载 第19讲+综合应用-购物车5

  设计数据库订单表:
  /*
Navicat MySQL Data Transfer
  Source Server         : localhost_3306
Source Server Version : 50516
Source Host         : localhost:3306
Source Database       : shopping
  Target Server Type    : MYSQL
Target Server Version : 50516
File Encoding         : 65001
  Date: 2012-08-01 08:20:01
*/
  SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for `orders`
-- ----------------------------
DROP TABLE IF EXISTS `orders`;
CREATE TABLE `orders` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`userId` int(11) NOT NULL,
`totalPrice` float NOT NULL DEFAULT '0',
`orderDate` int(10) unsigned NOT NULL,
PRIMARY KEY (`id`),
KEY `userId` (`userId`),
CONSTRAINT `orders_ibfk_1` FOREIGN KEY (`userId`) REFERENCES `users` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  -- ----------------------------
-- Records of orders
-- ----------------------------
  -- ----------------------------
-- Table structure for `ordersitem`
-- ----------------------------
DROP TABLE IF EXISTS `ordersitem`;
CREATE TABLE `ordersitem` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`orderId` int(11) DEFAULT NULL,
`bookId` int(11) DEFAULT NULL,
`bookNum` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
KEY `orderId` (`orderId`),
KEY `bookId` (`bookId`),
CONSTRAINT `ordersitem_ibfk_1` FOREIGN KEY (`orderId`) REFERENCES `orders` (`id`),
CONSTRAINT `ordersitem_ibfk_2` FOREIGN KEY (`bookId`) REFERENCES `book` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  -- ----------------------------
-- Records of ordersitem
-- ----------------------------

  
  
  发送电子邮件两种方式:a 配置成邮件服务器 b 委托转发
  发送邮件协议smtpsimple mailtransfer protocol   简单邮件传送协议
  TCP/IP
  应用层SMTPHTTPFTPPOP3
  / 传输层TCP
  / 网络层 IP
  /链路层/LINK      网卡指向路由器
  
  1) 链路层,有时也称作数据链路层或网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆(或其他任何传输媒介)的物理接口细节。
2) 网络层,有时也称作互联网层,处理分组在网络中的活动,例如分组的选路。在TCP/IP协议族中,网络层协议包括IP协议(网际协议),ICMP协议(internet互联网控制报文协议),以及IGMP协议(internet组治理协议)。
3 ) 运输层主要为两台主机上的应用程序提供端到端的通信。在TCP/IP协议族中,有两个互不相同的传输协议: TCP(传输控制协议)和UDP(用户数据报协议)。
  socket来发送
  首先有账号
  phpmail发送邮件支持多人抄送地址 支持utf8自定义邮件图 附件和图片
  phpmailer是一个优秀的发件程序,但中文资料比较少,于是我手动翻译了phpmailer的elementindex.html,E文的:http://www.bblog.com/apidoc/elementindex_PHPMailer.html,因为水平有限,翻译的地方可能不是很准,希望大家多多指教。因为东西较多,所以分三个帖子
  
A-C
  From:
http://www.xiaoxiaoyu.cn/AMP/215.html
  A开头:
      $AltBody--属性
      出自:PHPMailer::$AltBody ,文件:class.phpmailer.php
      说明:该属性的设置是在邮件正文不支持HTML的备用显示
      AddAddress--方法
      出自:PHPMailer::AddAddress(),文件:class.phpmailer.php
      说明:增加收件人。参数1为收件人邮箱,参数2为收件人称呼。例AddAddress("xiaoxiaoxiaoyu@xiaoxiaoyu.cn","xiaoxiaoyu"),但参数2可选,AddAddress(xiaoxiaoxiaoyu@xiaoxiaoyu.cn)也是可以的。函数原型:
      public function AddAddress($address, $name = '') {}
      AddAttachment--方法
      出自:PHPMailer::AddAttachment(),文件:class.phpmailer.php
      说明:增加附件。参数:路径,名称,编码,类型。其中,路径为必选,其他为可选
      函数原型:
      AddAttachment($path, $name = '', $encoding = 'base64', $type = 'application/octet-stream'){}
      AddBCC--方法
         出自:PHPMailer::AddBCC(),文件:class.phpmailer.php
      说明:增加一个密送。抄送和密送的区别请看 。参数1为地址,参数2为名称。注意此方法只支持在win32下使用SMTP,不支持mail函数
      函数原型:
         public function AddBCC($address, $name = ''){}
      AddCC --方法
      出自:PHPMailer::AddCC(),文件:class.phpmailer.php
      说明:增加一个抄送。抄送和密送的区别请看 。参数1为地址,参数2为名称注意此方法只支持在win32下使用SMTP,不支持mail函数      函数原型:
      public function AddCC($address, $name = '') {}
      AddCustomHeader--方法
         出自:PHPMailer::AddCustomHeader(),文件:class.phpmailer.php
      说明:增加一个自定义的E-mail头部。参数为头部信息
      函数原型:
      public function AddCustomHeader($custom_header){}
      AddEmbeddedImage --方法
      出自:PHPMailer::AddEmbeddedImage(),文件:class.phpmailer.php
      说明:增加一个嵌入式图片。参数:路径,返回句柄[,名称,编码,类型]
      函数原型:
          public function AddEmbeddedImage($path, $cid, $name = '', $encoding = 'base64', $type = 'application/octet-stream') {}
      提示: AddEmbeddedImage(PICTURE_PATH. "index_01.jpg ",   "img_01 ",   "index_01.jpg ");
      在html中引用<img   src= &quot;cid:img_01 &quot;>
      AddReplyTo--方法
      出自:PHPMailer:: AddReplyTo(),文件:class.phpmailer.php
      说明:增加回复标签,如&quot;Reply-to&quot;。参数1地址,参数2名称
      函数原型:
          public function AddReplyTo($address, $name = '') {}
      AddStringAttachment-方法
         出自:PHPMailer:: AddStringAttachment(),文件:class.phpmailer.php
      说明;增加一个字符串或二进制附件(Adds a string or binary attachment (non-filesystem) to the list.?)参数:字符串,文件名[,编码,类型]
      函数原型:
         public function AddStringAttachment($string, $filename, $encoding = 'base64', $type = 'application/octet-stream') {}
      Authenticate--方法
      出自:SMTP::Authenticate(),文件:class.smtp.php
      说明:开始SMTP认证,必须在Hello()之后调用,如果认证成功,返回true,参数1用户名,参数2密码
      函数原型:
      public function Authenticate($username, $password) {}
B开头
      $Body--属性
      出自:PHPMailer::$Body 文件: class.phpmailer.php
      说明:邮件内容,HTML或Text格式
C开头
      $CharSet--属性
      出自:PHPMailer::$CharSet 文件:class.phpmailer.php
      说明:邮件编码,默认为iso-8859-1
      $ConfirmReadingTo--属性
      出自:PHPMailer::$ConfirmReadingTo 文件class.phpmailer.php
      说明:回执?
      $ContentType--属性
      出自:PHPMailer::$ContentType 文件: class.phpmailer.php
      说明:文档的类型,默认为&quot;text/plain&quot;
      $CRLF--属性
      出自:PHPMailer::$ContentType 文件:class.phpmailer.php
      说明:SMTP回复结束的分隔符(SMTP reply line ending?)
      class.phpmailer.php--对象
      出自:class.phpmailer.php 文件: class.phpmailer.php
      说明:phpmailer对象
      class.smtp.php--对象
      出自:class.smtp.php 文件: class.smtp.php
      说明:SMTP功能的对象
      ClearAddresses--方法
      出自:PHPMailer::ClearAddresses() 文件: class.phpmailer.php
      说明:清除收件人,为下一次发件做准备。返回类型是void
      ClearAllRecipients--方法
      出自:PHPMailer::ClearAllRecipients() 文件: class.phpmailer.php
      说明:清除所有收件人,包括CC(抄送)和BCC(密送)
      ClearAttachments--方法
      出自:PHPMailer::ClearAttachments() 文件: class.phpmailer.php
      说明:清楚附件
      ClearBCCs--方法
      出自:PHPMailer::ClearBCCs() 文件 class.phpmailer.php
      说明:清楚BCC (密送)
      ClearCustomHeaders--方法
      出自:PHPMailer::ClearCustomHeaders() 文件: class.phpmailer.php
      说明:清楚自定义头部
      ClearReplyTos--方法
      出自:PHPMailer::ClearReplyTos() 文件: class.phpmailer.php
      说明:清楚回复人
      Close--方法
      出自:SMTP::Close() 文件: class.smtp.php
      说明:关闭一个SMTP连接
      Connect--方法
      出自:SMTP::Connect() 文件: class.smtp.php
      说明:建立一个SMTP连接
  D-N
From:http://www.xiaoxiaoyu.cn/AMP/216.html
  
D开头
      $do_debug--属性
      出自:SMTP::$do_debug 文件:class.smtp.php
      说明:SMTP调试输出
      Data-方法
      出自:SMTP::Data() 文件: class.smtp.php
      说明:向服务器发送一个数据命令和消息信息( sends the msg_data to the server)
E开头
      $Encoding--属性
      出自:PHPMailer::$Encoding 文件:class.phpmailer.php
      说明:设置邮件的编码方式,可选:&quot;8bit&quot;, &quot;7bit&quot;, &quot;binary&quot;, &quot;base64&quot;, 和 &quot;quoted-printable&quot;.
      $ErrorInfo--属性
      出自:PHPMailer::$ErrorInfo 文件: class.phpmailer.php
      说明:返回邮件SMTP中的最后一个错误信息
      Expand--方法
      出自:SMTP::Expand()      文件:class.smtp.php
      说明:返回邮件列表中所有用户。成功则返回数组,否则返回false(Expand takes the name and asks the server to list all the people who are members of the _list_. Expand will return back and array of the result or false if an error occurs.)
F开头:
      $From--属性
      出自:PHPMailer::$From 文件 class.phpmailer.php
      说明:发件人E-mail地址
      $FromName--属性
      出自:PHPMailer::$FromName 文件: class.phpmailer.php
      说明:发件人称呼
H开头:
      $Helo--属性
      出自:PHPMailer::$Helo 文件: class.phpmailer.php
      说明:设置SMTP Helo,默认是$Hostname(Sets the SMTP HELO of the message (Default is $Hostname).)
      $Host--属性
      出自:PHPMailer::$Host         文件:class.phpmailer.php
      说明:设置SMTP服务器,格式为:主机名[端口号],如smtp1.example.com:25和smtp2.example.com都是合法的
      $Hostname--属性
      出自:PHPMailer::$Hostname 文件: class.phpmailer.php
      说明:设置在Message-Id和and Received headers 中的hostname并同时被$Helo使用。如果为空,默认为SERVER_NAME 或 'localhost.localdomain&quot;
      Hello--方法
      出自:SMTP::Hello()      文件:class.smtp.php
      说明:向SMTP服务器发送HELO命令
      Help--方法
      出自:SMTP::Help() 文件:class.smtp.php
      说明:如果有关键词,得到关键词的帮助信息
I开头:
      IsError--方法
      出自:PHPMailer::IsError()      文件:class.phpmailer.php
      说明:返回是否有错误发生
      IsHTML--方法
      出自:PHPMailer::IsHTML()      文件: class.phpmailer.php
      说明:设置信件是否是HTML格式
      IsMail--方法
      出自:PHPMailer::IsMail()         文件: class.phpmailer.php
      说明:设置是否使用php的mail函数发件
      IsQmail--方法
      出自:PHPMailer::IsQmail()         文件: class.phpmailer.php
      说明:设置是否使用 qmail MTA来发件
      IsSendmail --方法
      出自:PHPMailer::IsSendmail()         文件: class.phpmailer.php
      说明:是否使用$Sendmail 程序来发件
      IsSMTP --方法
      出自:PHPMailer::IsSMTP()         文件:class.phpmailer.php
      说明:是否使用SMTP来发件
M开头:
      $Mailer--属性
      出自:PHPMailer::$Mailer      文件:class.phpmailer.php
      说明:发件方式,(&quot;mail&quot;, &quot;sendmail&quot;, or &quot;smtp&quot;).中的一个
      Mail--方法
      出自:SMTP::Mail()         文件: class.smtp.php
      说明:从$from中一个邮件地址开始处理,返回true或false。如果是true,则开始发件
N开头:
      Noop --方法
      出自:SMTP::Noop()         文件: class.smtp.php
      说明:向SMTP服务器发送一个NOOP命令
  P-W
From:http://www.xiaoxiaoyu.cn/AMP/217.html
  P开头:
      $Password--属性
      出自:PHPMailer::$Password         文件: class.phpmailer.php
      说明:设置SMTP的密码
      $PluginDir--属性
      出自:PHPMailer::$PluginDir         文件:class.phpmailer.php
      说明:设置phpmailer的插件目录,仅在smtp class不在phpmailer目录下有效
      $Port--属性
      出自:PHPMailer::$Port         文件: class.phpmailer.php
      说明:设置SMTP的端口号
      $Priority--属性
      出自:PHPMailer::$Priority      文件:class.phpmailer.php
      说明:设置邮件投递优先等级。1 = 紧急, 3 = 普通, 5 = 不急
      PHPMailer--对象
      出自:PHPMailer         文件: class.phpmailer.php
      说明:PHPMailer - PHP email transport class
Q开头
      Quit--方法
      出自:SMTP::Quit()         文件: class.smtp.php
      说明:向服务器发送Quit命令,如果没有错误发生。那么关闭sock,不然$close_on_error为true
R开头
      Recipient--方法
      出自:SMTP::Recipient()      文件:class.smtp.php
      说明:使用To向SMTP发送 RCPT 命令,参数为:$to
      Reset--方法
      出自:SMTP::Reset()         文件: class.smtp.php
      说明:发送 RSET 命令从而取消处理中传输。成功则返回true,否则为false
S开头:
      $Sender--属性
      出自:PHPMailer::$Sender         文件:class.phpmailer.php
      说明:Sets the Sender email (Return-Path) of the message. If not empty, will be sent via -f to sendmail or as 'MAIL FROM' in smtp mode.
      $Sendmail--属性
      出自:PHPMailer::$Sendmail         文件:class.phpmailer.php
      说明:设置发件程序的目录
      $SMTPAuth--属性
      出自:PHPMailer::$SMTPAuth         文件: class.phpmailer.php
      说明:设置SMTP是否需要认证,使用Username和Password变量
      $SMTPDebug--属性
      出自:PHPMailer::$SMTPDebug         文件: class.phpmailer.php
      说明:设置SMTP是否调试输出?
      $SMTPKeepAlive--属性
      出自:PHPMailer::$SMTPKeepAlive      文件: class.phpmailer.php
      说明:在每次发件后不关闭连接。如果为true,则,必须使用 SmtpClose()来关闭连接
      $SMTP_PORT--属性
      出自:SMTP::$SMTP_PORT         文件: class.smtp.php
      说明:设置SMTP端口
      $Subject--属性
      出自:PHPMailer::$Subject      文件:class.phpmailer.php
      说明:设置信件的主题
      Send--方法
       出自:SMTP::Send()         文件: class.smtp.php   
      说明:从指定的邮件地址开始一个邮件传输
      Send--方法
      出自:PHPMailer::Send()         文件: class.phpmailer.php   
      说明:创建邮件并制定发件程序。如果发件不成功,则返回false,请使用ErrorInfo来查看错误信息
      SendAndMail--方法
      出自:SMTP::SendAndMail()         文件: class.smtp.php
      说明:从指定的邮件地址开始一个邮件传输
      SendOrMail--方法
      出自:SMTP::SendOrMail()      文件:class.smtp.php
      说明:从指定的邮件地址开始一个邮件传输
      SetLanguage--方法
      出自:PHPMailer::SetLanguage()         文件: class.phpmailer.php
      说明:设置phpmailer错误信息的语言类型,如果无法加载语言文件,则返回false,默认为english
      SMTP--方法
      出自:SMTP::SMTP()      文件:class.smtp.php
      说明:初始化一个对象以便数据处于一个已知的状态
      SMTP--对象
         出自:SMTP         文件:class.smtp.php
      说明:SMTP对象
      SmtpClose--方法
      出自:PHPMailer::SmtpClose()         文件: class.phpmailer.php
      说明:如果有活动的SMTP则关闭它。
T开头
      $Timeout--属性
      出自:PHPMailer::$Timeout         文件: class.phpmailer.php
      说明:设置SMTP服务器的超时(单位:秒)。注意:在win32下,该属性无效
  Turn--方法
      出自:SMTP::Turn()         文件: class.smtp.php
      说明:这是一个可选的SMTP参数,目前phpmailer并不支持他,可能未来支持
U开头
      $Username--属性
      出自:PHPMailer::$Username      文件:class.phpmailer.php
      说明:设置SMTP用户名
V开头
      $Version--属性
         出自:PHPMailer::$Version         文件: class.phpmailer.php
      说明:返回Phpmailer的版本
      Verify--方法
      出自:SMTP::Verify()         文件: class.smtp.php
      说明:通过服务器检查用户名是否经过验证
W开头:
      $WordWrap--属性
       出自:PHPMailer::$WordWrap         文件: class.phpmailer.php
      说明:设置每行最大字符数,超过改数后自动换行
  
  sendmail使用步骤:
  1下载一个phpmailer的函数包
  2引入class.phpmailer.php   class.pop3.php class.smtp.php
  3 在需要发送电邮的代码中,加入如下代码
  
  拒绝攻击 肯德基1000个人排队麦当劳的例子说明加上验证码 存入session或者memcache验证后,再进行用户注册验证。
页: [1]
查看完整版本: 韩顺平zend+framework sendmail 视频教程 笔记心得 源代码下载 第19讲+综合应用-购物车5