`
sagahl
  • 浏览: 24055 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

PHP使用模板管理邮件样式

阅读更多

小弟接触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邮件发送模板涉及多个步骤和技术,从设计到实现都需要对HTML、CSS和邮件客户端的特性有深入理解。通过优化这些方面,可以构建出既美观又功能强大的邮件模板,从而提升用户对邮件内容的互动...

    PHP邮件发送模板集合

    标签"phpmailer"表明这个压缩包可能包含如何使用PHPMailer发送这些邮件模板的示例或指南。 PHPMailer的使用步骤通常包括以下几个关键部分: 1. **安装与引入**:通过Composer(PHP的依赖管理工具)安装PHPMailer,...

    邮件模板发送(SendMailTemplate)

    其次,邮件模板的创建可以借助各种工具,如代码编辑器(如Visual Studio Code)、专门的邮件模板构建器(如MailChimp或Campaign Monitor)或者CMS(内容管理系统)中的内置功能。在创建过程中,需要确保模板内容简洁...

    仿outlook邮件系统管理后台模板 +.rar

    这种模板通常包含一系列与邮件管理系统相关的页面布局、样式和交互元素,旨在提供一个与Outlook类似但定制化的用户体验。在企业级应用中,这样的后台模板可以帮助管理员高效地处理邮件、联系人、日程安排等事务。 ...

    网站改版上线邮件订阅模板

    其次,邮件订阅的实现通常需要后端技术支持,如使用PHP、Python等编程语言配合SMTP服务器进行邮件发送。开发者需要创建一个数据库来存储用户的邮箱地址,当有新的更新时,通过脚本自动化地向这些邮箱发送邮件。此外...

    网站后台管理系统模板

    8. **仿126邮件系统管理后台模板**:这类模板模仿了成熟的邮件系统后台,对于开发类似功能的系统,可以提供有价值的参考。 总的来说,网站后台管理系统模板通过提供预制的界面和代码结构,帮助开发者节省时间,提高...

    网站后台管理静态模板

    网站后台管理静态模板是网页设计领域中一个重要的组成部分,它主要负责提供网站管理员进行内容更新、数据管理和系统设置的工作环境。这种模板通常不包含动态服务器端脚本,而是由HTML、CSS和JavaScript等前端技术...

    后台模板(PHP JAVA )都可以用

    【标题】:“后台模板(PHP JAVA )都可以用”揭示了这个资源是一个适用于PHP和JAVA后端开发的通用后台管理模板。这意味着无论你是基于PHP还是JAVA构建后台系统,这个模板都可以提供帮助,节省时间和精力。 【描述...

    旅游网模板 (PHP语言)

    【标题】"旅游网模板 (PHP语言)"是一个基于PHP编程语言构建的网站模板,专为旅游行业设计。这个模板提供了一套完整的前端和后端框架,用于创建功能丰富的旅游预订和信息展示平台。PHP是一种广泛使用的开源服务器端...

    PHP 邮件群发类

    如果你的邮件正文包含动态内容,可以使用字符串格式化或模板引擎来生成。 在实际使用中,你可能需要根据邮件服务器的具体设置进行一些调整,例如端口号、加密类型(SSL/TLS)等。这些都可以通过PHPMailer的相关属性...

    php 发送邮件源码

    开发者可以在此基础上根据项目需求进行定制和扩展,如增加邮件模板支持、邮件队列处理、错误日志记录等功能。理解并熟练使用这样的邮件发送源码对于PHP开发者来说是非常重要的,因为它可以极大地提高邮件发送的效率...

    PHP邮件发送类.zip

    对于需要发送格式统一的邮件,如订阅新闻或营销邮件,可以使用PHPMailer结合HTML模板,快速生成定制化的邮件内容。 综上所述,这个"PHP邮件发送类"是一个强大且灵活的工具,可以帮助开发者高效地处理电子邮件的...

    php企业网站模板

    PHP模板引擎(如Smarty)可将数据与HTML分离,实现更灵活的模板管理。 二、PHP在企业网站中的应用 1. 数据交互:PHP与MySQL等数据库进行连接,处理用户的注册、登录、产品展示、订单处理等数据操作。 2. 动态内容...

    2030Xenon Admin响应式后台管理员bootstrap模板5108_企业网站模板PHP整站源码.zip.7z

    这个模板基于Bootstrap框架,Bootstrap是一款流行的前端开发框架,它提供了丰富的组件和样式,使得开发者可以快速创建响应式布局的网页,即在不同设备(手机、平板、桌面电脑)上都能自适应显示。 描述中的“企业...

    漂亮的通用后台 html模板 静态模板 后台模板

    126邮箱是中国流行的电子邮件服务之一,其后台管理界面通常会包括用户管理、邮件管理、设置选项等功能模块,因此这个模板可能也包含了这些常见的后台管理元素。 在使用这个模板时,开发者可以快速构建一个类似于126...

    php实现支持附件的邮件系统

    4. **邮件模板**:为提供一致的用户体验,可以创建邮件模板来统一邮件样式。 5. **性能优化**:如果需要发送大量邮件,可以考虑使用队列处理,避免一次性发送导致服务器负载过高。 总结,通过PHP结合PHPMailer库,...

    免费wordpress模板下载

    WordPress是一款广泛使用的开源内容管理系统,尤其在建立个人博客、企业网站和电子商务平台方面非常流行。免费的WordPress模板是用户入门和提升网站外观的关键资源。在本文中,我们将深入探讨“西瓜红色”的免费...

    PHP实例开发源码—php邮件列表 phplist 多国语言版.zip

    4. **模板设计**:phplist 提供了可自定义的邮件模板,用户可以创建和编辑符合品牌形象的邮件样式。 5. **统计分析**:内置的统计功能可以帮助管理员了解邮件的送达情况、打开率、点击率等,从而优化邮件内容和发送...

    PHPWEB底部信息编辑区-模板

    综上所述,PHPWEB底部信息编辑区的模板为网站管理员提供了一个便捷的方式,来管理和定制网站底部的信息展示,以满足不同用户的需求和法规要求。通过理解和利用这个模板,可以有效地提升网站的专业性和用户体验。

    项目管理系统后台模板

    使用这样一个模板,开发者可以快速搭建起一个功能完备的项目管理后台,从而更有效地协调团队、监控项目进度,最终提高项目成功率。同时,模板的可定制性也允许团队根据自身需求进行调整,以满足特定的工作流程和业务...

Global site tag (gtag.js) - Google Analytics