私はDrupal 7を使用しており、電子メールオプションでの作業に集中しています。Forwardモジュールを使用しています。drupal_mail()関数にBCCフィールドを追加するにはどうすればよいですか。
私のデフォルト機能は、
drupal_mail('forward', 'forward_page', trim($to), language_default(), $params, $params['from']);
私はDrupal 7を使用しており、電子メールオプションでの作業に集中しています。Forwardモジュールを使用しています。drupal_mail()関数にBCCフィールドを追加するにはどうすればよいですか。
私のデフォルト機能は、
drupal_mail('forward', 'forward_page', trim($to), language_default(), $params, $params['from']);
回答:
必要なものはすべて、電子メールメッセージヘッダー配列にあります。
$params['headers'] = array(
'Bcc' => 'bcc_email@example.com',
'Cc' => 'cc_email@example.com',
);
以下に、bccヘッダーを含むdrupal_mail()の実装例を示します。
$params = array(
'body' => $body,
'subject' => $subject,
'headers' => array(
'Bcc' => $header_bcc,
'Cc' => $header_cc
)
);
$email = drupal_mail('ModuleName', 'message_key', $to, LANGUAGE_NONE, $params, $from, true);
hook_mail()を使用して、追加する必要があります(ありがとう@ clive):
/**
* Implements hook_mail().
*/
function ModuleName_mail($key, &$message, $params) {
switch ($key) {
case 'message_key':
$message['headers'] += $params['headers'];
}
}
フックメールのalterを使用して、ccおよびbccのメールIDを変更または追加できます。例を参照してください。
/**
* Implements hook_mail_alter().
*/
function hook_mail_alter(&$message) {
$message['to'] = 'mail@gmail.com';
$message['headers']['Bcc'] = 'Your mail ids goes here with comma seperation';
$message['headers']['Cc'] = 'Your mail ids goes here with comma seperation';
}
また、drupal_mail()の$ params配列でbccおよびccメールIDを使用できます。
$params = array(
'body' => $body,
'subject' => 'Your Subject',
'headers' => array(
'Cc' => 'Your mail ids goes here with comma seperation',
'Bcc' => 'Your mail ids goes here with comma seperation',
),
);
そのためのモジュールがあります:drupalが送信するすべてのメールのbccを取得したい場合は、BCC Moduleをチェックしてください。