今天写一个magento模块,主要的功能是实现前台用户利用表单给管理员发送邮件的一个功能,功能很简单,但在这个模块中,可以了解到一些有关magento的一些细节,比如,如何获取系统标签id,如何使用magento默认的提示信息,如何使用smtp服务等等。

新建模块Inchoo

目录结构如下:

Inchoo

|--_SimpleContact

|----controllers

|--IndexController.php

|----etc

|--config.xml

首先需要让magento识别写的扩展:

app/etc/modules/Inchoo_SimpleContact.xml

true

local

其次再在模块的配置文件config.xml中添加:

0.1.0

standard

Inchoo_SimpleContact

simplecontact

在控制中IndexController.php代码如下,在代码中解释器含义:

class Inchoo_SimpleContact_IndexController extends Mage_Core_Controller_Front_Action

{

public function indexAction()

{

//Get current layout state

$this->loadLayout();

//使用mganeto默认的提示信息,需要在控制器添加$this->_initLayoutMessages('core/session');

$this->_initLayoutMessages('core/session');

//在控制器中创建一个block

$block = $this->getLayout()->createBlock(

'Mage_Core_Block_Template',

'inchoo.simple_contact',

array(

'template' => 'inchoo/simple_contact.phtml'

)

);

$this->getLayout()->getBlock('content')->append($block);

//$this->getLayout()->getBlock('right')->insert($block, 'catalog.compare.sidebar', true);

$this->_initLayoutMessages('core/session');

$this->renderLayout();

}

//发送邮件

public function sendemailAction()

{

$params = $this->getRequest()->getParams();

//print_r($params);

//这里获取后台设置的smtp的host和port

//$my_smtp_host = Mage::getStoreConfig('system/smtp/host');

//$my_smtp_port = Mage::getStoreConfig('system/smtp/port');

//以下代码,需要提前安装好smtp的一个扩展插件SMTPPro $general_email=Mage::getStoreConfig('trans_email/ident_general/email');

$sales_email = Mage::getStoreConfig('trans_email/ident_sales/email');

$support_email = Mage::getStoreConfig('trans_email/ident_support/email');

//smtppro

$smtppro_host = Mage::getStoreConfig('smtppro/general/smtp_host');

$smtppro_port = Mage::getStoreConfig('smtppro/general/smtp_port');

$smtppro_username = Mage::getStoreConfig('smtppro/general/smtp_username');

$smtppro_password = Mage::getStoreConfig('smtppro/general/smtp_password');

$email=Mage::getStoreConfig('contacts/email/recipient_email');

$config = array(

'port' => $smtppro_port,

'auth' => 'login',

'username' => $smtppro_username,

'password' => $smtppro_password

);

$transport = new Zend_Mail_Transport_Smtp($smtppro_host, $config);

Zend_Mail::setDefaultTransport($transport);

$mail = new Zend_Mail('utf-8');

print_r($transport);

//exit();

$mail->setBodyText($params['comment']);

// $mail->setFrom($config['username']);

// $mail->addTo($params['email'], $params['name']);

$mail->setFrom($params['email']);

$mail->setSubject('test');

$mail->addTo($email);

try {

$mail->send();

$this->_redirect('*/*');

Mage::getSingleton('core/session')->addSuccess('Your request has been sent!');

}

catch(Exception $ex) {

print_r($ex->getMessage());

Mage::getSingleton('core/session')->addError('Unable to send!');

$this->_redirect( $this->getBaseUrl());

}

}

}

备注:代码中提到的SMTP Pro插件,可以在Magento Connect上下载源文件,然后安装到自己的项目中即可,安装成功后,可以看到在systerm->Configuration左侧看到ASCHRODER EXTENSIONS/SMTP Pro,点击看到如下界面:

提示:如果安装好后,打开报错,应先清理缓存,然后logout注销,重新登录后台即可。

控制器中有

$my_smtp_host = Mage::getStoreConfig('system/smtp/host');

$my_smtp_port = Mage::getStoreConfig('system/smtp/port');

这里是获取magento自己的input值,如图所示:

同理可得port的input值。

前台页面代码如下:

路径如下:

app/design/frontend/rwd/default/template/inchoo/simple_contact.phtml

simple_contact.phtml内容如下:

Inchoo_SimpleContact module sample

  • Gimme your name *

    And your email *

    Some comment?

* Required Fields

Submit

//< ![CDATA[

var myForm= new VarienForm('simple_contact_form', true);

//]]>

页面效果如图:

magento邮件使用php,Magento模块示例发送邮件相关推荐

  1. magento邮件使用php,Magento订单成功无邮件发送

    Magento订单成功之后,或是有新的订单在MAGENTO1.9.1版本中不发送相应的邮件及抄送邮件至管理员邮箱 这个问题是今天我们的一个客户从1.7升级到1.9.1.1时发现的,后来听技术人员说,此 ...

  2. Magento微信跨境支付模块V2.1发布

    2019独角兽企业重金招聘Python工程师标准>>> 关于微信跨境支付(WeChat Cross-border Payment) 微信跨境支付的核心功能是实现"人民币收款 ...

  3. python邮件客户端_python3之模块SMTP协议客户端与email邮件MIME对象

    1.smtplib模块的常用类与方法 smtplib模块实现邮件的发送功能,模拟一个stmp客户端,通过与smtp服务器交互来实现邮件发送的功能,可以理解成Foxmail的发邮件功能,在使用之前我们需 ...

  4. 深入理解Magento – 第五章 – Magento资源配置

    深入理解Magento 作者:Alan Storm 翻译:Hailong Zhang 第五章 – Magento资源配置 对于任何一个更新频繁的项目来说,保持开发环境和生产环境的数据库同步是件很头疼的 ...

  5. 【Python学习笔记】(十)邮件处理:email模块;SMTP协议(smtplib模块);POP3协议(poplib模块);IMAP协议(imaplib模块)

    电子邮件,简称电邮,是指一种由寄件人将数字信息发送给一个人或者多个人的信息交换方式. 电邮包括三个部分:消息的"信封".邮件标头.邮件内容. 电邮的格式:用户名@主机名(域名).电 ...

  6. magento 开发 -- 深入理解Magento第五章 – Magento资源配置

    第五章 – Magento资源配置 对于任何一个更新频繁的项目来说,保持开发环境和生产环境的数据库同步是件很头疼的事情.Magento提供了一套系统,用版本化的资源迁移脚本来解决这个问题. 上一章,我 ...

  7. jboss 发布web_JBoss模块示例–模块化Web应用程序

    jboss 发布web 最近,我读到了为什么没有标准来开发真正的模块化Web应用程序? 由Patroklos Papapetrou撰写( 在Java Code Geeks中也有介绍 ). 受本文的启发 ...

  8. JBoss模块示例–模块化Web应用程序

    最近,我读了为什么没有标准来开发真正的模块化Web应用程序? 由Patroklos Papapetrou撰写( 在Java Code Geeks中也有介绍 ). 受本文的启发,我决定检查实际使用的JB ...

  9. Magento教程 18:Magento功能导览(2) 展示商品

    Magento是强大的电子商务网站,可以多样化的呈现商品以及支援多种客制化选项,提供客户在选购商品时可以附上更加详细的资讯,以下就来看看Magento在商品方面的呈现. 分类商品页面 Magento教 ...

最新文章

  1. 大智慧825 自选股 导出_互联网技术更新智慧党校迎来发展契机-威尔 WEDS-BP31_济南考勤机行情...
  2. 【JZOJ4835】【GDOI2017模拟10.31】量化交易
  3. 13、不同存储引擎的数据表在文件系统里是如何表示的?
  4. php获取页面的可视内容高度,网页制作技巧:获取页面可视区域的高度_css
  5. CF827F-Dirty Arkady‘s Kitchen【堆】
  6. java 语法检查_java编译期间的语法检查
  7. CSS Positioning页面
  8. 如何更新Node.js?
  9. mysql 8 配置参数优化_MySQL性能优化之参数配置
  10. java两个栈怎么完成初始化_Spring bean初始化及销毁你必须要掌握的回调方法
  11. 为什么新装的mysql5.7服务无法启动_mysql 5.7安装 MySQL 服务无法启动但是服务没有报告任何错误...
  12. IE6 某些bug修复
  13. DataX工具的基本使用
  14. ssm 项目中引用 百度bae的sdk 安装jar
  15. 各类好文与摘抄的经典
  16. 未来的计算机辅助教学是什么样的,计算机辅助教学cat是什么软件
  17. MPU3050+加速度计数据处理
  18. js生成二维码——QRCode.js中文文档
  19. MATLAB2013实现图像处理GUI界面设计
  20. 暑期社会实践总结报告

热门文章

  1. 欧几里德算法 扩展欧几里德算法
  2. 国内ChatGPT的镜像网站分享
  3. chatgpt api请求样例
  4. CSDN Markdown模板
  5. 边学边敲边记之爬虫系列(八):Scrapy系统爬取伯乐在线
  6. 网上零售年会召开 微商未来引发热议
  7. 【TB-02模组专题⑤】微信小程序通讯TB02 模块控制 STM32 单片机LED灯
  8. Apple Push Notification Service(苹果推送服务)
  9. 深入理解MVC分层模式
  10. SLAM论文阅读:M-Loam:具有在线外参校准功能的多LiDAR系统的稳健里程表和建图