我需要使用Drupal服务从我的自定义php代码发送电子邮件。
换句话说,我注意到Drupal可以轻松发送电子邮件,所以我想知道如何使用drupal库发送电子邮件,而不是使用外部库。
答案 0 :(得分:8)
您需要使用drupal_mail(),并在模块中定义hook_mail()。
然后您将调用第一个,电子邮件信息将由第二个设置。
(请参阅drupal_mail()
的文档页面上的示例。)
答案 1 :(得分:7)
$message = array(
'to' => 'example@mailinator.com',
'subject' => t('Example subject'),
'body' => t('Example body'),
'headers' => array('From' => 'example@mailinator.com'),
);
drupal_mail_send($message);
警告:
drupal_mail()
,其他模块将无法hook_mail_alter()
您的输出,这可能会导致意外结果。drupal_mail_send()
对发送邮件的语言一无所知,因此需要事先弄明白。drupal_mail()
为您照顾。
如果您的模块发送了几种不同类型的电子邮件,并且您希望这些电子邮件模板可编辑(例如,用户模块的各种注册通知/密码重置/等电子邮件),则仍然使用hook_mail()
最好的方式。这是a comment文档中drupal_mail()中报告的内容。如果您的案例中的警告不重要,那么您可以使用报告的代码段。
答案 2 :(得分:4)
我建议使用mimemail。它是一个contrib模块,允许您轻松发送HTML邮件(+附件)或纯文本邮件。以下是自述文件的摘录:
mimemail()函数:
此模块创建用于接收纯文本消息的用户首选项。所有对mimemail()
的调用都会尊重这种偏好链接:http://drupal.org/project/mimemail
我希望这会对你有所帮助!