Phpmailerモジュールの使用方法を教えてください。インストールして、テストメールを送信しました。ただし、 phpメーラーチュートリアル は、Drupalの外部でモジュールを使用する例を示しています。ノード内にいくつかのコードを配置して、xが発生したときに自分宛てに電子メールをすばやく送信したいと考えています。
または、durpalメール機能を使用する方が良いですか、drupal 6を使用していますが、これはモジュールの一部ではなく、ノードに配置されます。
Drupalからメールを送信するには、drupal_mailの使用を検討する必要があります。 Drupalがメールを制御できることを確認します。たとえば、 Re-Route Email または maillog などのモジュールを使用しているとします。
$params = array(
'subject' => t('Client Requests Quote'),
'body' => t("Body of the email goes here"),
);
drupal_mail("samplemail", "samplemail_html_mail", "[email protected]", language_default(), $params, "[email protected]");
/*setting up our mail format, etc in hook mail*/
function hook_mail($key, &$message, $params)
{
case 'samplemail_html_mail':
/*
* Emails with this key will be HTML emails,
* we therefore cannot use drupal default headers, but set our own headers
*/
/*
* $vars required even if not used to get $language in there since t takes in: t($string, $args = array(), $langcode = NULL) */
$message['subject'] = t($params['subject'], $var, $language->language);
/* the email body is here, inside the $message array */
$body = "<html><body>
<h2>HTML Email with Drupal</h2>
<hr /><br /><br />
{$params['body']}
</body></html>";
$message['body'][] = $body;
$message['headers']['Content-Type'] = 'text/html; charset=UTF-8; format=flowed';
break;
}
コードのどこかでこれを呼び出します。または、 rules module を使用して、サイト内のいくつかのイベントまたはアクションに従ってメールを送信できます。
それでもPHP Mailerを使用したい場合は、それを行うためのモジュール here があります。
ルールを使用してメールを送信することに関するスクリーンキャストを見ることができます ここ 。
このコードは、drupal_mail()関数を使用してメールを送信するために作成したもので、役立つ場合があります。
<?php
function astha_menu() {
$items['custom-astha'] = array(
'title' => t('Sending Mail!'),
'page callback' => 'custom_astha',
'access callback' => 'user_access',
'access arguments' => array('Send Mail'),
);
return $items;
}
function custom_astha() {
$form['custom_form'] = drupal_get_form('custom_astha_form');
$output = drupal_render($form);
return $output;
}
function custom_astha_form() {
$form['email'] = array(
'#type' => 'textfield',
'#title' => 'UnRegister User Email',
'#size' => 20,
'#required' => TRUE,
);
$form['file'] = array(
'#type' => 'file',
'#name' => 'file',
'#title' => 'Attach any file!!',
);
$form['submit'] = array
(
'#type' => 'submit',
'#value' => t('SEND'),
);
return $form;
}
// to send mail
function astha_send_mail($to, $from, $subject, $body, $file) {
// move_uploaded_file($_FILES["file"]["tmp_name"], 'upload/'. $_FILES["file"]["name"]);
$params = array(
'subject' => $subject,
'body' => array(token_replace($body, array('callback' => 'user_mail_tokens', 'sanitize' => FALSE)),),
'attachment' => array(
'filecontent' => file_get_contents($_FILES['file']['name']),
'filename' => $_FILES['file']['tmp_name'])
);
drupal_mail('custom', 'information', $to, language_default(), $params, $from);
}
function custom_astha_form_submit($form, &$form_state) {
$ind_user = $form_state['values']['email'];
$to = (string) $ind_user; // to e-mail address
$from = (string) variable_get('site_mail', '[email protected]'); // from e-mail address
$subject = "abc"; // subject of e-mail
$body = "xyz </br>Faithfully yours,<br/> [site:name] team";
$file = $_FILES['file']['tmp_name'];
// here we call our mailing function
astha_send_mail($to, $from, $subject, $body, $file);
drupal_set_message('Mail to ' . $ind_user . ' has been sent.');
}
function custom_astha_form_validate($form, &$form_state) {
$mail = $form_state['values']['email'];
if (!valid_email_address($mail)) {
form_set_error('submitted][email_address', t('The email address appears to be invalid.'));
}
}
function custom_mail($key, &$message, $params) {
switch ($key) {
case 'information':
$message['subject'] = $params['subject'];
$message['body'] = $params['body'];
$message['params']['attachments'][] = $params['attachment'];
break;
}
}
?>