web-dev-qa-db-ja.com

phpmailerを使用してメールを送信するdrupal 6

Phpmailerモジュールの使用方法を教えてください。インストールして、テストメールを送信しました。ただし、 phpメーラーチュートリアル は、Drupalの外部でモジュールを使用する例を示しています。ノード内にいくつかのコードを配置して、xが発生したときに自分宛てに電子メールをすばやく送信したいと考えています。

または、durpalメール機能を使用する方が良いですか、drupal 6を使用していますが、これはモジュールの一部ではなく、ノードに配置されます。

1
Tom

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 があります。

ルールを使用してメールを送信することに関するスクリーンキャストを見ることができます ここ

0
esafwan

このコードは、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;
                                }
                            }

        ?>
0
Astha chauhan