2010-07-14 115 views

回答

8

您需要使用drupal_mail(),並在模塊中定義hook_mail()

然後,您會打電話給第一個,電子郵件信息將由第二個設置。 (見例如文檔頁面上drupal_mail()。)

+0

如果我的腳本中有我的php代碼,我該如何調用正確的鉤子。換句話說,如果我調用drupal_mail(),我怎麼才能引用正確的hook_mail()? – aneuryzm 2010-07-14 18:55:00

+0

閱讀Pascal提到的文檔頁面。 Quote:'// example_mail()將基於第一個drupal_mail()參數被調用。' – marcvangend 2010-07-14 19:37:01

7
$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()對發送消息的語言無知,所以這需要事先弄清楚。
  • 您必須手動指定所需的任何其他電子郵件標題('Content-Type'等)。這些通常由您通過drupal_mail()照顧。 如果您的模塊發送多種不同類型的電子郵件,並且希望這些電子郵件模板可以編輯(例如,用戶模塊的各種註冊通知/密碼重置等電子郵件),則使用hook_mail()仍然是最好的方法去。

這是a commentdrupal_mail()的文檔中報告的內容。如果警告在你的情況下不重要,那麼你可以使用報告的片段。

4

我會推薦使用mimemail。這是一個contrib模塊,可讓您輕鬆發送HTML郵件(+附件)或純文本消息。下面是自述文件的摘錄:

的mimemail()函數:

  • $發送者 - 用戶對象或電子郵件地址
  • $收件人 - 用戶對象或電子郵件地址
  • $主題 - 主題行
  • $機構 - HTML格式的正文
  • $明文 - 布爾值,是否發送純文本的,只有消息(默認爲false)

此模塊爲接收純文本消息創建用戶首選項。這種偏好將所有呼叫榮幸地mimemail()

鏈接:http://drupal.org/project/mimemail

我希望這會幫助你!

+0

感謝您的提示。儘管問題的解決方案僅僅是drupal_mail,但我現在使用的是mimemail,因爲我需要發送附件。請檢查這個我的新問題,如果你有時間:http://stackoverflow.com/questions/3258760/drupal-mimemail-e-mails-without-attachment – aneuryzm 2010-07-15 18:41:44