注文をメールとクライアントのメールに送信したい。
次のコードを使用して、自分のWebサイトで注文を送信します。
_function MYMODULE_form_submit($form, &$form_state) {
order_mail_send($form_state['values']);
}
_
これはorder_mail_send()
コードです:
_function order_mail_send($form_values) {
$module = 'shop';
$key = 'key';
$to = $form_values['email'];
$language = language_default();
$params = array();
$from = NULL;
$send = FALSE;
$message = drupal_mail($module, $key, $to, $language, $params, $from, $send);
$message2 = drupal_mail($module, $key, $from, $language, $params, $from, $send);
$subject = 'Order Status';
$message['subject'] = $subject;
$message['body'] = array();
$message['body'][] = "<h3>Your order: ".$form_values['first']." ".$form_values['last']."</h3>";
// …
// Retrieve the responsible implementation for this message.
$system = drupal_mail_system($module, $key);
// Format the message body.
$message = $system->format($message);
$message2 = $system->format($message2);
// Send e-mail.
$message['result'] = $system->mail($message);
$message['result2'] = $system->mail($message2);
if ($message['result'] && $message['result2'] == TRUE) {
drupal_set_message(t('Your order has been sent. Thank you!'));
}
else {
drupal_set_message(t('There was a problem sending your message and it was not sent.'), 'error');
}
}
_
$message = $system->format($message);
を送信しますが、2番目のメールは送信しません。どうすればそれを機能させることができますか?CCを使用して、コピーをadmin/yourselfに送信できます$message['headers']['CC'] = "[email protected]"
drupal_mail() を呼び出すモジュールは drupal_mail_system() を呼び出さないため、コードは正しくありませんが、 hook_mail() を実装しています。このフック実装の例は contact_mail() で、Contactモジュールから送信された電子メールを contact_personal_form_submit() で処理します contact_site_form_submit() 。
// contact_site_form_submit()
$values = $form_state['values'];
$values['sender'] = $user;
$values['sender']->name = $values['name'];
$values['sender']->mail = $values['mail'];
$values['category'] = contact_load($values['cid']);
// Save the anonymous user information to a cookie for reuse.
if (!$user->uid) {
user_cookie_save(array_intersect_key($values, array_flip(array('name', 'mail'))));
}
// Get the to and from e-mail addresses.
$to = $values['category']['recipients'];
$from = $values['sender']->mail;
// Send the e-mail to the recipients using the site default language.
drupal_mail('contact', 'page_mail', $to, language_default(), $values, $from);
// If the user requests it, send a copy using the current language.
if ($values['copy']) {
drupal_mail('contact', 'page_copy', $from, $language, $values, $from);
}
// Send an auto-reply if necessary using the current language.
if ($values['category']['reply']) {
drupal_mail('contact', 'page_autoreply', $from, $language, $values, $to);
}
Kantuからも述べたように、受信者ではない他のユーザーにCCでメールを送信できます。