`
xinlanzero
  • 浏览: 252921 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Drupal_mail()的使用

    博客分类:
  • PHP
 
阅读更多

在Drupal中,发送邮件,要使用drupal_mail()的,这个函数有点特别,最主要的是,这里用到了钩子_mail()。在Drupal6中,drupal_mail()这个函数作了调整,至少是参数与5时不同了。

我写了一个模块,让用户分享drupal网站中的网址,通过电子邮件,将该地址发送给自己的朋友。当然,一个人怎么能记住自己朋友的电子邮件地址呢,我是记不住。不过确实有这样的功能需求。在drupal中,有对应的模块,比如,sharethis,addtoany,但是这些包含的功能太多,我所需要的仅仅是通过email分享。

那么就需要自己写模块了,这就用到了drupal_mail()。建议大家先到api上看看这个函数。这个函数确实比较麻烦,对于刚接触的人来说,不过学会以后还是不错的。我们来看一下提交时的函数:

function fenxiang_form_submit($form, &$form_state){

       //global $base_path;

       $to = str_replace(";",",",$form_state['values']['recipe']);

       //$to= "test@hotmail.com,test@163.com";

       //$default_from = variable_get('site_mail', ini_get('sendmail_from'));

       $from = $form_state['values']['sender'];

       $values =  $form_state['values'];

       $nid = arg(1);

       if($nid<=0){

              drupal_goto('catalog');

       }

       $node = node_load($nid);

       $url = 'http://'.$_SERVER['HTTP_HOST'].base_path().'node/'.arg(1);

       //$url = l($node->title,'node/'.arg(1));

       $values['url'] = $url;

       $values['title'] = $node->title;

       drupal_mail('fenxiang', 'fen_xiang', $to, language_default(), $values, $from);

       drupal_goto('node/'.arg(1));

}

一般都是使用;来分割多个邮箱,但是gmail特别,它使用”,”来分割多个邮箱,这是最初的字符串替换函数的用途,下面的都不用管。

看看这个drupal_mail('fenxiang', 'fen_xiang', $to, language_default(), $values, $from);

'fenxiang', 'fen_xiang',这两个,第一个是模块的名称,第2个位于fenxiang_mail()中,fenxiang_mail()是一个钩子函数:

function fenxiang_mail($key, &$message, $params){

$language = $message['language'];

  switch ($key) {

      case 'fen_xiang':

             //$message['subject'] .= '['. variable_get('site_name', 'Drupal') .'] '. $params['title'];

             $message['subject'] .= '['. variable_get('site_name', 'Drupal') .'] '. $params['title'];

      //$message['body'][] = $params['url'];

      //$message['body'][] = $params['message'];

      $message['body'][] = $params['url'];

       $message['body'][] = $params['message'];

  }

这里面就是拼邮件的各个部分的,包括标题,还有正文。在这里,你可以使用$params中传递过来的参数,来拼凑标题和正文。

而这个$params,实际上对应的就是drupal_mail()中的$values。懂得这几点,就基本上入门了,在drupal6中,邮件发送差不多算是模板化了,也就是比5要方便,也更明了,但是你需要重新学习一下这个函数的使用。

另外有一点,比较郁闷,使用smtp发的邮件,我收到后,看到的都是网站上所配置的地址,但是当你回复时,才是用户的邮箱,怎么才能将那个网站中配置的邮箱地址替换成用户自己的呢?这个我也不会。

相关链接: http://zhupou.n

分享到:
评论

相关推荐

    drupal中创建hook_user并调用drupal的mail函数发送email实例

    在实例中,wedpage_mail_form是一个用来收集邮件发送信息的表单函数。该函数定义了一个表单,其中包含一个文本字段用于输入接收者的邮箱地址。当表单提交后,wedpage_mail_form_submit函数被调用。在该函数中,首先...

    drupal 的smtp模块

    在默认情况下,Drupal可能使用PHP的mail()函数来发送邮件,但这种方式在某些服务器配置下可能不可靠或者不支持,这时就需要借助SMTP模块。 SMTP模块提供了与各种SMTP服务提供商(如Google的Gmail、Microsoft的...

    drupal6 mime 6.0

    MIME(Multipurpose Internet Mail Extensions)是一种标准,用于扩展电子邮件的格式,以便包含非ASCII字符、多媒体内容(如图像和音频)以及其他非传统邮件元素。在 Drupal 6 中,MimeMail模块利用这个标准来构造和...

    drupal6邮箱配置和简洁连接设置

    2. **默认的站点电子邮件地址**:这是 Drupal 的系统通知邮件将使用的地址,用于接收用户的反馈或其他系统消息。 3. **SMTP服务器**(可选):如果你的网站需要通过SMTP服务器发送邮件,可以在“邮件系统”(Mail ...

    d8mail:Drupal 8 模块演示了邮件 API 的使用

    2. **构建邮件**:使用 Drupal 8 的 `\Drupal\Core\Mail\MailManager` 类来创建邮件对象。这包括设置收件人、主题、正文等信息。邮件内容可以是纯文本,也可以是 HTML。 3. **发送邮件**:使用 `MailManager` 的 `...

    drupal 6.12

    This will create a new directory drupal-x.x/ containing all Drupal files and directories. Move the contents of that directory into a directory within your web server's document root or your public ...

    Drupal-Custom-Form-Mode:用于显示自定义表单模式的仓库

    向其添加字段,记住要向其中添加“ field_mail”字段。 通过名称“公司表格模式”和计算机名称“ company_form_mode”创建表格模式。 在代理内容类型的“管理表单显示设置”下,选择“公司表单模式”作为单独的...

    Drupalgeddon2:针对 Drupal v7.x + v8.x 的漏洞利用 (Drupalgeddon 2 CVE-2018-7600 SA-CORE-2018-002)

    8.5.1 ~ user/register URL,攻击account/mail & #post_render参数,使用 PHP 的passthru函数Drupal &lt; 7.58 ~ user/password URL,攻击triggering_element_name表单 & #post_render参数,使用 PHP 的passthru...

    d7ssnippets:Drupal 7 Sublime Snippets

    Sublime Text 2 Drupal 7 片段。 通过将代码片段复制到您的安装它们。 Sublime Text 2 无需重启即可获取片段。 随意贡献!代码段快捷方式完整概览hook_admin_paths_alter hook_form_alter hook_form 钩子菜单hook_...

    Mail Send - Drupal Simplenews Newsletter:这是在Drupal外部运行的php脚本,用于发送您的Simplenews-开源

    该脚本使用simplenews新闻通讯数据库表,用户,新闻通讯类别等。您唯一要做的就是从Drupal禁用simplenews新闻... 有关更多信息,请访问http://tecorange.com/content/mail-send-addon-drupal-simplenews-newsletter

    Drupal-REST-API-starter:一个简单的 Drupal 8 安装配置文件,突出显示了与 Drupal 的 RESTful 交互

    一个简单的 Drupal 8 安装配置文件,突出显示了与 Drupal 的 RESTful 交互。 安装 安装和初始化。 $ &gt; npm install $ &gt; grunt 安装站点。 根据需要更改数据库网址$ &gt; drush @restapi si --db-url=mysql://restapi:...

    ist的matlab代码-drupal8-migrate:安装作曲家的Drupal8迁移示例

    设置drupal配置的路径 在settings.php中将路径修改为config文件夹 $config_directories['sync'] = 'sites/default/config_migrate/sync'; 使用drush进行网站安装 需要冲击8 ist。 drush site-install config_...

    durable-drupal-distro:DurableDrupalDistro 示例在 DrupalCon 拉丁美洲 2015 演示中使用 设置可重用且耐用的 Drupal 精益流程工厂

    Drupal 精益入门套装 克隆后安装后,将启用具有全新自适应主题子主题“drupallean”的 Drupal 7 实例以及一组站点构建贡献模块的选择集。 创建Apache虚拟主机和MySql数据库用户权限后的典型drush站点安装命令(这里...

    mailgun:drupal7的mailgun模块,可以使用mailgun服务免费发送邮件,每天最多20​​0个

    2. **配置**:在 Drupal 的“配置”菜单中找到“Mail System”(邮件系统),选择 Mailgun 作为默认邮件处理器。接着,前往“Mailgun 设置”,输入你的 Mailgun API 密钥和默认域。 3. **测试**:发送一封测试邮件,...

    sendmail.rar

    7. 集成进Web应用:sendEmail可以方便地集成到各种Web应用程序中,如WordPress、Drupal、Magento等,通过编写简单的脚本或配置文件,即可实现邮件发送功能。 8. 兼容性:sendEmail兼容多种操作系统,包括Linux、...

    powst-office:适用于 Howst VM 的简单邮件捕捉器应用程序

    我们主要在本地和开发 drupal 站点上使用测试电子邮件。 ##依赖PHP 带作曲家数据库网络服务器(Apache、NGINX 等) ##安装克隆 repo /var/www/powst或任何你想要为前端提供服务的地方。 运行bower install和...

    PHP2016-03-24参考手册

    例如,`strlen()`用于计算字符串长度,`date()`用于格式化日期,`file_get_contents()`用于读取文件内容,`mail()`发送邮件等。 四、面向对象编程 自PHP 5开始,PHP支持完整的面向对象编程(OOP),包括类(class)...

    phpmailer.rar

    PHPMailer支持多种邮件传输方法,包括SMTP(简单邮件传输协议)和PHP内置的`mail()`函数。 `class.smtp.php`是处理SMTP通信的辅助类。SMTP是互联网上用于发送邮件的标准协议,通过与SMTP服务器进行交互,PHPMailer...

    集成的LAMP开发工具xampp

    在XAMPP中,Apache被预配置为在Linux系统上运行,并且包含了所有必要的模块,如mod_rewrite用于URL重写,这对于使用像WordPress或Drupal这样的CMS非常重要。此外,Apache的配置文件(如httpd.conf)也进行了调整,...

    exploit-CVE-2016-10033:PHPMailer &lt;5.2.18远程执行代码漏洞和易受攻击的容器

    由许多开源项目使用:WordPress,Drupal,1CRM,SugarCRM,Yii和Joomla! 还有很多PHPMailer 5.2.18之前的版本存在一个漏洞,该漏洞可能导致远程代码执行(RCE)。 如果未设置Sender属性,则PHPMailer的isMail传输...

Global site tag (gtag.js) - Google Analytics