我需要使用Drupal服務從我的自定義php代碼發送電子郵件。如何從自定義PHP代碼發送電子郵件?
換句話說,我注意到Drupal可以輕鬆發送電子郵件,所以我想知道如何使用drupal庫發送電子郵件,而不是使用外部庫。
我需要使用Drupal服務從我的自定義php代碼發送電子郵件。如何從自定義PHP代碼發送電子郵件?
換句話說,我注意到Drupal可以輕鬆發送電子郵件,所以我想知道如何使用drupal庫發送電子郵件,而不是使用外部庫。
您需要使用drupal_mail(),並在模塊中定義hook_mail()。
然後,您會打電話給第一個,電子郵件信息將由第二個設置。 (見例如文檔頁面上drupal_mail()
。)
$message = array(
'to' => '[email protected]',
'subject' => t('Example subject'),
'body' => t('Example body'),
'headers' => array('From' => '[email protected]'),
);
drupal_mail_send($message);
注意事項:
drupal_mail()
不叫,其他模塊將無法hook_mail_alter()
你的輸出,這可能會導致意外結果。drupal_mail_send()
對發送消息的語言無知,所以這需要事先弄清楚。drupal_mail()
照顧。 如果您的模塊發送多種不同類型的電子郵件,並且希望這些電子郵件模板可以編輯(例如,用戶模塊的各種註冊通知/密碼重置等電子郵件),則使用hook_mail()
仍然是最好的方法去。這是a comment在drupal_mail()的文檔中報告的內容。如果警告在你的情況下不重要,那麼你可以使用報告的片段。
我會推薦使用mimemail。這是一個contrib模塊,可讓您輕鬆發送HTML郵件(+附件)或純文本消息。下面是自述文件的摘錄:
的mimemail()函數:
此模塊爲接收純文本消息創建用戶首選項。這種偏好將所有呼叫榮幸地mimemail()
鏈接:http://drupal.org/project/mimemail
我希望這會幫助你!
感謝您的提示。儘管問題的解決方案僅僅是drupal_mail,但我現在使用的是mimemail,因爲我需要發送附件。請檢查這個我的新問題,如果你有時間:http://stackoverflow.com/questions/3258760/drupal-mimemail-e-mails-without-attachment – aneuryzm 2010-07-15 18:41:44
如果我的腳本中有我的php代碼,我該如何調用正確的鉤子。換句話說,如果我調用drupal_mail(),我怎麼才能引用正確的hook_mail()? – aneuryzm 2010-07-14 18:55:00
閱讀Pascal提到的文檔頁面。 Quote:'// example_mail()將基於第一個drupal_mail()參數被調用。' – marcvangend 2010-07-14 19:37:01