cakephp email templete 很重要

本文将深入解析CakePHP邮件系统的配置方法,包括如何设置邮件服务器、使用内置类进行邮件发送、变量和模板的高级应用,以及如何通过模板实现个性化邮件内容。通过实例演示,帮助开发者轻松掌握邮件系统的高效利用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我觉得很难用中文写技术文章。第一我的翻译能力远远够不上“信达雅”的境界。第二科技文章更新的太快,连活学活用还在摸索中,更不必说建立一套参考标准了。第三,这些接触到的术语都是英语,我并不知道统一的翻译模式。但就像前面说过的那样,我太想做一点普及的共zo了,而且也实在受不了有些人闭着眼睛的照搬照抄,所以试试看吧

2.0的email升级为class而不是 1.3的component,所以可用的资料很少,这是官方版本,但写得不太精确,至少对入门者很难一下子搞明白。

首先设置email的服务器,官方代码如下,但很不幸并没有指出该在哪里添加gmail的配置,大概觉得这是惯例,约定俗成的事情,不值一提。 在app/config/下,把emal.php.default 文件改名为email.php 

<?php class EmailConfig { public $gmail = array( 'host' => 'ssl://smtp.gmail.com', 'port' => 465, 'username' => 'my@gmail.com', 'password' => 'secret', 'transport' => 'Smtp' ); }

第二步: 在需要用到email的controller上的拷贝这一行, 使用这个自带class

App::uses('CakeEmail', 'Network/Email');

第三步:基本使用方式

$email = new CakeEmail('gmail'); //使用前面的gmail配置 $email->from(array('me@example.com' => 'My Site')); $email->to('you@example.com'); $email->subject('About'); $email->send('My message'); you@example.com收到me@example.com发出的信,标题是‘About’,内容是‘My message’。功能达成,但毫无意义是吧,所以得进入下一步。

第四步:带变量的使用方式

$email->from($this->data['Contact']['email']); //Contact 是Model, email是它的一个field $email->subject('Contact message from ' . $this->data['Contact']['name']); $email->subject('Contact message ' . $this->data['Contact']['content']) );

这样收到的信包含着内容,收件人知道是谁发出的信而不是从地址上猜测,以及从信头来估摸内容,算是真正意义上的一次交流。但是没有格式,所有文字都挤在一堆,迷失在['Contact']['content']的信息汪洋中。
第五步:带模板的使用方式

$email->template('recover', 'default') //recover是template, default是layout ->emailFormat('html') //用html的格式发送,可选还有text,both

app/view/email/html/recover.ctp 部分代码:

<b>Dear <?php echo $user['User']['fname'] . " " .$user['User']['sname']; ?></b>, //显示 Dear firstname lastname

app/view/layouts/email/html/default.ctp代码

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html> <head> <title><?php echo $title_for_layout;?></title> </head> <body> <?php echo $content_for_layout;?> <p>This email was sent by <a href="">Lily</a></p> </body> </html> //格式和html的差不多,只需要加上两句cake语句(绿色),它就会自动把template上的内容加载到这个大框架下

注意到在recover.ctp中的变量了么$user['User']['fname'],这又是哪里来的呢,马上揭晓
在controller上加上一句

$email->viewVars(array( 'user' =>$user ));//$user是array, 这是用email来重置密码的一个样本
CakePHP Email
CakePHP Email



















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值