Drupal_mailを使用してメールを送信しています。
$to = '[email protected]';
drupal_mail('$module_name', $key, $to, language_default(), $params = array('username' => 'Tanvir'), $from = NULL, $send = TRUE);
一度に複数のメールアドレスにメールを送信したい。これを行うべきですか?
$to = array('[email protected]', '[email protected]', '[email protected]',);
drupal_mail('$module_name', $key, $to, language_default(), $params = array('username' => 'Tanvir'), $from = NULL, $send = TRUE);
drupal_mail
のtoパラメータは文字列であり、配列ではありません。ただし、コンマで区切られている場合は、電子メールの "to"文字列に任意の数の受信者を含めることができます。
したがって、同じメールを複数の受信者に送信するには、次のようにします。
$to = '[email protected],[email protected],[email protected]';
drupal_mail('$module_name', $key, $to, language_default(), $params = array('username' => 'Tanvir'), $from = NULL, $send = TRUE);
PHP docによると、関数drupal_mailの1回の呼び出しで送信できる文字は1つだけなので、サイクルを使用する必要があります。例
$to = array('[email protected]', '[email protected]', '[email protected]',);
foreach ($to as $email) {
drupal_mail('$module_name', $key, $email, language_default(), $params = array('username' => 'Tanvir'), $from = NULL, $send = TRUE);
}
hook_mail を使用して、次を渡して複数の受信者を送信します。
$params = array();
$params['cc'][] = '[email protected]'
drupal_mail('$module_name', 'custom_key', $to, language_default(), $params = array('username' => 'Tanvir'), $from = NULL, $send = TRUE);
//hook will be the module name
function hook_mail($key,&$message,$params) {
if ($key == 'custom_key') {
$message['headers']['cc'] = $params['cc'];
//.
//.
//.
//.
}
}
Drupal_mail関数のドキュメントを読んだ場合、 '$ to'パラメータは次のような特定の形式の配列ではなく文字列を受け入れることがわかります。
したがって、$ to配列を関数implodeを使用して必要な形式に簡単に変換できるため、一度に複数の受信者に電子メールを送信する必要があります。これがコードです:
$to = array('[email protected]', '[email protected]', '[email protected]',);
//To change array('[email protected]', '[email protected]', '[email protected]',) -> '[email protected], [email protected], [email protected]' use implode
$to_str = implode(",", $to);
drupal_mail('$module_name', $key, $to_str, language_default(), $params = array('username' => 'Tanvir'), $from = NULL, $send = TRUE);