小弟接触php第3日,公司要做个发邮件的模块。项目中使用的php框架是zend framework。但是在网上看到的例子中,要想发html样式邮件,html代码必须全部包含在字符串里。这样修改起来不好预览邮件的版式。如果要是能直接写个邮件模板,发的时候调用该模板,系统渲染模板得到最终的邮件。于是尝试自己动手写该功能。
首先编写发送邮件功能
class SendMailTool extends Zend_Mail_Transport_Smtp {
protected $mail;
protected $transport;
public function __construct($smtpserver = 'smtp.hgsamerica.com', $username, $password) {
$config = array (
'auth' => 'login',
'username' => $username,
'password' => $password
);
$this->transport = new Zend_Mail_Transport_Smtp($smtpserver, $config);
}
/**
* 用于基本的发送邮件
*/
public function sendMail($to, $toname, $from, $fromname, $title, $contant) {
$this->mail = new Zend_Mail("UTF-8");
$this->mail->setDefaultTransport($this->transport);
$this->mail->addTo($to, $toname);
$this->mail->setBodyHtml($contant);
$this->mail->setFrom($from, $fromname);
$this->mail->setSubject("=?UTF-8?B?" . base64_encode($title) . "?=");
$this->mail->send();
}
//读取模板,替换模板中的变量
private function loadVM($vmname, $config = Array ()) {
$contant = '';
$file = fopen("mailtemplates/" . $vmname, "r");
while (!feof($file)) {
$line = fgets($file);
while (strpos($line, "{\$") > 0) {
$counts = strpos($line, "{\$");
$counte = strpos($line, "}");
$substr = substr($line, $counts +2, $counte - $counts -2);
$line = str_replace("{\$" . $substr . "}", $config[$substr], $line);
}
$contant .= $line;
}
return $contant;
}
/**
* 发送模板邮件
*/
public function sendVMMail($to, $toname, $from, $fromname, $title, $config, $vm) {
$this->sendMail($to, $toname, $from, $fromname, $title, $this->loadVM($vm, $config));
}
测试的模板
<table>
<tr>
<td>
please input your inf
</td>
</tr>
<tr>
<td>
name:{$user}
</td>
</tr>
<tr>
<td>
password:{$password}
</td>
</tr>
</table>
测试代码
$config = array (
'user' => 'huling',
'password' => '123456'
);
$mail = new SendMailTool('smtp.xxxx.com', 'huling', 'aqsdsadsad');
$mail->sendVMMail('sagahl@126.com', 'live', 'huling@xxxxx.com', 'work', 'askjdkas', $config,'test.html');
}
以上的代码完成了通过模板发送邮件。修改邮件的样式只需要修改邮件的模板。
由于是刚刚接触php,不知道php中是不是已经实现了以上功能的代码?或者是否有更好的解决方案?希望能抛砖引玉。
分享到:
相关推荐
综上所述,创建和使用HTML邮件发送模板涉及多个步骤和技术,从设计到实现都需要对HTML、CSS和邮件客户端的特性有深入理解。通过优化这些方面,可以构建出既美观又功能强大的邮件模板,从而提升用户对邮件内容的互动...
标签"phpmailer"表明这个压缩包可能包含如何使用PHPMailer发送这些邮件模板的示例或指南。 PHPMailer的使用步骤通常包括以下几个关键部分: 1. **安装与引入**:通过Composer(PHP的依赖管理工具)安装PHPMailer,...
其次,邮件模板的创建可以借助各种工具,如代码编辑器(如Visual Studio Code)、专门的邮件模板构建器(如MailChimp或Campaign Monitor)或者CMS(内容管理系统)中的内置功能。在创建过程中,需要确保模板内容简洁...
这种模板通常包含一系列与邮件管理系统相关的页面布局、样式和交互元素,旨在提供一个与Outlook类似但定制化的用户体验。在企业级应用中,这样的后台模板可以帮助管理员高效地处理邮件、联系人、日程安排等事务。 ...
其次,邮件订阅的实现通常需要后端技术支持,如使用PHP、Python等编程语言配合SMTP服务器进行邮件发送。开发者需要创建一个数据库来存储用户的邮箱地址,当有新的更新时,通过脚本自动化地向这些邮箱发送邮件。此外...
8. **仿126邮件系统管理后台模板**:这类模板模仿了成熟的邮件系统后台,对于开发类似功能的系统,可以提供有价值的参考。 总的来说,网站后台管理系统模板通过提供预制的界面和代码结构,帮助开发者节省时间,提高...
网站后台管理静态模板是网页设计领域中一个重要的组成部分,它主要负责提供网站管理员进行内容更新、数据管理和系统设置的工作环境。这种模板通常不包含动态服务器端脚本,而是由HTML、CSS和JavaScript等前端技术...
【标题】:“后台模板(PHP JAVA )都可以用”揭示了这个资源是一个适用于PHP和JAVA后端开发的通用后台管理模板。这意味着无论你是基于PHP还是JAVA构建后台系统,这个模板都可以提供帮助,节省时间和精力。 【描述...
【标题】"旅游网模板 (PHP语言)"是一个基于PHP编程语言构建的网站模板,专为旅游行业设计。这个模板提供了一套完整的前端和后端框架,用于创建功能丰富的旅游预订和信息展示平台。PHP是一种广泛使用的开源服务器端...
如果你的邮件正文包含动态内容,可以使用字符串格式化或模板引擎来生成。 在实际使用中,你可能需要根据邮件服务器的具体设置进行一些调整,例如端口号、加密类型(SSL/TLS)等。这些都可以通过PHPMailer的相关属性...
开发者可以在此基础上根据项目需求进行定制和扩展,如增加邮件模板支持、邮件队列处理、错误日志记录等功能。理解并熟练使用这样的邮件发送源码对于PHP开发者来说是非常重要的,因为它可以极大地提高邮件发送的效率...
对于需要发送格式统一的邮件,如订阅新闻或营销邮件,可以使用PHPMailer结合HTML模板,快速生成定制化的邮件内容。 综上所述,这个"PHP邮件发送类"是一个强大且灵活的工具,可以帮助开发者高效地处理电子邮件的...
PHP模板引擎(如Smarty)可将数据与HTML分离,实现更灵活的模板管理。 二、PHP在企业网站中的应用 1. 数据交互:PHP与MySQL等数据库进行连接,处理用户的注册、登录、产品展示、订单处理等数据操作。 2. 动态内容...
这个模板基于Bootstrap框架,Bootstrap是一款流行的前端开发框架,它提供了丰富的组件和样式,使得开发者可以快速创建响应式布局的网页,即在不同设备(手机、平板、桌面电脑)上都能自适应显示。 描述中的“企业...
126邮箱是中国流行的电子邮件服务之一,其后台管理界面通常会包括用户管理、邮件管理、设置选项等功能模块,因此这个模板可能也包含了这些常见的后台管理元素。 在使用这个模板时,开发者可以快速构建一个类似于126...
4. **邮件模板**:为提供一致的用户体验,可以创建邮件模板来统一邮件样式。 5. **性能优化**:如果需要发送大量邮件,可以考虑使用队列处理,避免一次性发送导致服务器负载过高。 总结,通过PHP结合PHPMailer库,...
WordPress是一款广泛使用的开源内容管理系统,尤其在建立个人博客、企业网站和电子商务平台方面非常流行。免费的WordPress模板是用户入门和提升网站外观的关键资源。在本文中,我们将深入探讨“西瓜红色”的免费...
4. **模板设计**:phplist 提供了可自定义的邮件模板,用户可以创建和编辑符合品牌形象的邮件样式。 5. **统计分析**:内置的统计功能可以帮助管理员了解邮件的送达情况、打开率、点击率等,从而优化邮件内容和发送...
综上所述,PHPWEB底部信息编辑区的模板为网站管理员提供了一个便捷的方式,来管理和定制网站底部的信息展示,以满足不同用户的需求和法规要求。通过理解和利用这个模板,可以有效地提升网站的专业性和用户体验。
使用这样一个模板,开发者可以快速搭建起一个功能完备的项目管理后台,从而更有效地协调团队、监控项目进度,最终提高项目成功率。同时,模板的可定制性也允许团队根据自身需求进行调整,以满足特定的工作流程和业务...