Drupal_mail()的使用

在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

别再只盯着CVE-2018-7600复现了,聊聊Drupal表单渲染漏洞的实战利用与防御思路 本文深入剖析Drupal表单渲染漏洞CVE-2018-7600的利用与防御,从攻击链拆解到企业级防护实践。详细解析漏洞原理、实战渗透技巧及持久化手段,并提供代码层、网络层和运行时的多维度防御方案,帮助管理员有效加固Drupal系统安全。 阅读详情

相关推荐

游戏开发实战:如何用旋转矩阵实现2D角色平滑转向(附Unity代码)

本文深入探讨了在Unity游戏开发中,如何运用旋转矩阵原理实现2D角色的平滑转向。文章从核心理论出发,提供了计算目标旋转、实现平滑插值(Lerp与SmoothDamp)的完整C#代码,并解决了与动画系统、物理引擎协同的常见难题,帮助开发者提升游戏操作手感与视觉流畅度。

weixin_29057237的博客 287

Drupal配置Send mail(drupal发送邮件)

这2天一直在解决drupal发送邮件的问题,最初安装的时候是下载了Drupal的phpmailer和SMTP两个模块来安装,结果总是出现这样或者那样的错误,基本都是提示找不到class文件的Fatal error: Cannot redeclare drupal_mail_wrapper() (previously declared in C:\web\ser...

weixin_34332905的博客 322

Matplotlib图片尺寸调整全攻略:从figsize到savefig的实战技巧

在数据可视化与科学计算中,图形尺寸控制是影响图表可读性与专业度的基础环节。其核心原理在于协调逻辑尺寸(英寸)与物理输出(像素)的映射关系,这直接决定了信息呈现的清晰度与布局合理性。从技术价值看,精准的尺寸控制能提升图表在不同媒介(如学术论文、报告、网页)中的适配性,避免显示不全、模糊失真等常见问题。在应用场景上,无论是Jupyter Notebook中的交互探索、自动化报告的批量生成,还是满足严格出版要求的插图制作,都需要掌握对应的尺寸调整策略。本文聚焦于matplotlib中的figsize参数、rcPa

weixin_30899023的博客 329

Drupal 7 电子邮件的发送设置 SMTP, Mail System, Mime Mail

虽然Drupal自带发送email功能,但是很多服务器需要SMTP验证,这个时候就需要安装 SMTP 模块。 激活 SMTP 模块进入配置 admin/config/system/smtp在 Turn this module on or off  选择 on填写 SMTP SERVER SETTINGS 中相关信息 (如果你的服务器在godaddy,只要在 SMTP server 填写

sevenfish的专栏 1万+

电化学阻抗谱(EIS)在锂离子电池中的应用

摘要电化学阻抗谱(electrochemical impedance spectroscopy, EIS)是一种重要的电化学测试方法,在锂离子电池动力学反应机理研究及动力学参数测量等方面具有广泛的应用。在锂离子电池运行过程中,各反应步骤的动力学参数及时间常数不同,而EIS可以在较宽的频率范围内对体系施加小幅正弦激励信号,使得在特定频率下突出特定时间常数的电极过程,从而将复杂的电极过程分离,实现单一电极过程动力学的分析。通过对交流阻抗信息的研究,也可以为锂离子电池及其他电池的应用与管理、电化学过程设计及电极材

qiushireader的博客 2650

服务器搭建原神私服教程

项目的稳定版分支提供了编译好的服务端程序,但是博主觉得还是用dev版本的比较好。dev版本需要自己编译的,不要听到编译这两个字就头大,相反,这个服务端的编译相当简单。把文件中的两个IP地址127.0.0.1修改为你服务器的地址,修改完成后按 esc 输入 :wq。Mongodb作为服务端的数据库使用,我们这里安装最新版的Mongodb5。注意:如果想要使用最新版的服务端,必须安装>=17版本的java。tmux可以保证你关掉控制台的时候,程序依然继续运行。至此,服务端所需要的运行环境全部配置完成。

用最简单的方式说最重要的事!服务器、存储、云计 算、A智能的大数据产品、游戏开发技术。致力于广 大开发者、政企用户、各项机构等,构建云上世界提供全方位云计算解决方案。旨在打造差异化的开放式闭环生态系统帮助用户快速构建稳定、安全的云计算环境。 1万+

用drupal的mail函数发送email

如果想在drupal的用户账号里添加一些自己的内容,就要用到hook_user钩子函数。 例如在wedpage.module中添加一个“创建页面的链接”和一个“发送邮件的form” /*** Implementation of hook_user.** @return array*/function wedpage_user($type, &amp;$edit, &amp;$user, $ca...

抽刀断水 419

AI Agent Harness Engineering 开发效率工具:Prompt工程、调试与监控平台

随着AI Agent技术从原型探索走向企业级落地,开发者普遍面临Prompt迭代无版本管控、Agent执行黑盒无法定位错误、上线后无监控导致故障频发、多团队协作效率低下四大核心痛点,据2024年LLMOps行业报告显示,没有配套工具链的Agent开发团队平均迭代周期是有工具链团队的6倍,线上故障率高达23%,平均资源浪费超过60%。

小白菜的博客 425

drupal网站邮件发送功能的实现

drupal站点可以使用gmail邮箱向用户发送邮件,实现类似的功能有SMTP或者PHPmailer模块,我使用的是phpmailer模块,下面是我配置的过程,贴出来供大家参考。 1、下载phpmailer模块 http://drupal.org/project/phpmailer 2、启用phpmailer模块,在“站点设置”点“PHPmailer”进行设置时,页面会报错“...

weixin_33743703的博客 526

在Ubuntu系统中安装和使用wxPython进行Python图形用户界面(GUI)开发

在本文中,我将向您展示如何在Ubuntu系统上安装和使用wxPython,并提供一些示例代码来帮助您开始使用这个强大的工具。在MyFrame的构造函数中,我们创建了一个wx.Panel和一个按钮,并将按钮的点击事件绑定到一个自定义的方法on_button_click上。最后,我们创建了一个wx.App的实例,创建了一个MyFrame对象并显示它,最后通过调用app.MainLoop()启动应用程序的主事件循环。这只是一个简单的示例,但它演示了如何使用wxPython创建一个基本的GUI应用程序。

qq_37934722的博客 1040

YOLOv11改进 | 引入DEConv细节增强卷积模块:恢复细节信息,提升小目标检测精度

摘要: YOLOv11在目标检测中面临小目标检测精度不足的问题,主要由于细节信息丢失。本文提出引入DEConv(细节增强卷积)模块,通过多分支卷积和残差连接恢复高频细节,提升小目标检测性能。DEConv结合3×3卷积与空洞卷积增强边缘信息,并自适应融合特征,兼容YOLOv11的P3层(小目标关键层)且计算高效。实验表明,该改进在无人机航拍、显微镜图像等密集小目标场景中显著减少漏检,同时保持轻量化和实时性优势。代码实现可直接嵌入现有YOLO架构,仅需替换P3层卷积模块。

走向CTO的路上... 948

用drupal邮件API发送邮件

Drupal 6 的 Mail API 是为 Drupal 模块提供邮件发送服务的。大多数时候,使用 Mail API 需要两个步骤: 1,在你的模块中实现 hook_mail().2,在模块的其它地方,使用 drupal_mail() 函数调用你的 hook_mail() 实现,并进行附加的格式化和发送操作。 在上一节中,我们大体上看了一下 drupal_mail() 函数。现在,我们来仔细...

抽刀断水 519

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

安装drupal 时出现的问题

warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\Program Files\Apache Software Fo...

weixin_34004576的博客 202

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Drupal6中 使用hook_mail和drupal_mail发送邮件

在Drupal中,有一个钩子实现了邮件的发送接口,就是hook_mail($key, &$message, $params) 钩子,详见:http://api.drupal.org /api/function/hook_mail/6 这个钩子可以定义你要发送的邮件实体,即邮件标题和内容,一般放在你定义的.module文件里,然后就是在你需要发送邮件的程序位置处调用 

yyyfff43的专栏 1898

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Drupal6 hook_mail实现发送HTML邮件

/**实现hook_mail*$key用于区分邮件操作*$message邮件内容*$params参数,如果有的话...* 调用方法:drupal_mail('example','html','example@gmail.com',language_default(),array('subject'=>'','body'=>''))*/func...

weixin_30662109的博客 192

workflow 审批状态改变,发邮件通知——drupal8

一 配置邮箱 drupal8 邮件功能最优配置是gmail邮箱。 没有的话就注册一个。 注: 1 设置允许其他设备登陆gmail : 登录谷歌账户, 访问https://www.google.com/settings/security/lesssecureapps,把"不够安全的应用的访问权限" 启用打勾 ==================================...

苏公子的博客 4189

Postal 2关卡编辑器教程:从BSP原理到实战设计

BSP(Binary Space Partitioning)技术是早期3D游戏引擎的核心空间分割算法,它通过递归分割空间为凸多边形来实现高效渲染和碰撞检测。在游戏开发领域,理解BSP的工作原理有助于掌握关卡设计的基本逻辑,特别是在构建复杂室内环境时能优化性能表现。关卡编辑器作为游戏开发的重要工具,其价值在于将抽象的设计概念转化为可交互的虚拟空间。通过合理使用触发器和AI路径规划系统,开发者可以创建动态的游戏体验,如敌人遭遇战、谜题解谜等场景。以《Postal 2》的关卡编辑器为例,这套基于Unreal En

weixin_33806914的博客 388

drupal7配置send mail

http://drupal.org/project/phpmailer   下载后,一定要看说明,然后根据提示来安装 -- REQUIREMENTS --* Access to an SMTP server* Libraries API module  http://drupal.org/project/libraries  要装* PHPMailer library  https://g...

海阔天空的专栏(web前端+LAMP) 253

在Ubuntu18.04上安装小皮面板并搭建drupal网站

千万不要直接用这个命令直接下载安装sudo wget -O install.sh https://dl.xp.cn/dl/xp/install.sh && sudo bash install.sh,血的教训!!!试了n多遍,怎么弄都卡在第一步,根本没有办法搭建drupal网站,这样的界面一般就是下载安装错了。1、先在桌面上创建一个文件夹,文件夹命名为phpstudy2、右击phpstudy文件夹,选择在终端打开,并输入3、然后继续输入su rootPS:如果没有登过root用户,输入。

2301_79046256的博客 1798

MailDev终极指南:PHP项目邮件测试与Drupal配置完整教程

MailDev是一款强大的SMTP服务器和Web界面工具,专门为开发环境中的邮件测试而设计。这个开源工具让开发者能够轻松捕获、查看和测试应用程序发送的电子邮件,无需实际发送到真实收件人。无论是PHP项目、Drupal网站还是其他Web应用,MailDev都能提供完美的邮件测试解决方案,帮助您确保邮件功能正常工作。 ## 🚀 为什么选择MailDev进行邮件测试? 在开发过程中,邮件功能的测试

gitblog_00548的博客 330

drupal7 用到的一些钩子简介

1.hook_user_delete($account)   可用于自定义模块中,当用户被删除时,可以自定义一些自己需要的处理动作 2.hook_mail_alter(&$message)   可用于自定义模块中,当发送邮件时,可以通过此钩子,获取发送邮件的内容,并加以修改。 3.hook_init()   可用于自定义模块中,当页面初始化之前,进行一些拦截操作。 4...

dianai7709的博客 187
上一篇: Drupal配置Send mail(drupal发送邮件)
下一篇: 记录集不支持更新。这可能是提供程序的限制,也可能是选定锁定类型的限制...
xinlanzero
博客等级 码龄25年 10粉丝 132原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值