it-swarm.com.de

Wie sende ich mit drupal_mail E-Mails an mehrere Empfänger?

Ich benutze drupal_mail, um E-Mails zu senden.

$to = '[email protected]';
drupal_mail('$module_name', $key, $to, language_default(), $params = array('username' => 'Tanvir'), $from = NULL, $send = TRUE);

Ich möchte E-Mails an mehrere E-Mail-Adressen gleichzeitig senden. Soll ich das machen?

$to  = array('[email protected]', '[email protected]', '[email protected]',);
drupal_mail('$module_name', $key, $to, language_default(), $params = array('username' => 'Tanvir'), $from = NULL, $send = TRUE);
8
Tanvir Ahmad

Der to-Parameter zu drupal_mail ist eine Zeichenfolge, kein Array. Sie können jedoch beliebig viele Empfänger in der E-Mail-Zeichenfolge "to" haben, sofern diese durch Kommas getrennt sind.

Gehen Sie wie folgt vor, um dieselbe E-Mail an mehrere Empfänger zu senden:

$to  = '[email protected],[email protected],[email protected]';
drupal_mail('$module_name', $key, $to, language_default(), $params = array('username' => 'Tanvir'), $from = NULL, $send = TRUE);

Siehe auch API-Dokumentation für drupal_mail

24
Free Radical

Laut PHP doc) können Sie nur einen Brief über einen Aufruf der Funktion drupal_mail senden. Sie sollten also den Zyklus verwenden. Beispiel

$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);
}
1
Eugene

Verwenden Sie hook_mail , um mehrere Empfänger zu senden, indem Sie Folgendes übergeben:

$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'];
    //.
    //.
    //.
    //.
  }    
}
1
harshal

Wenn Sie die Funktionsdokumentation von drupal_mail lesen, wird angezeigt, dass der Parameter '$ to' eine Zeichenfolge akzeptiert, die kein Array in bestimmten Formaten ist, wie z.

  1. [email protected]
  2. [email protected], [email protected]
  3. Benutzer
  4. Benutzer, ein anderer Benutzer

So können wir Ihr $ in Array mithilfe der Implode-Funktion problemlos in das erforderliche Format konvertieren. Daher müssen Sie E-Mails auf einmal an mehrere Empfänger senden. Hier ist der Code:

$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);
0
Karan