web-dev-qa-db-ja.com

カスタムモジュールからの電子メールのトリガー

Hook_menuを使用して、SQLクエリの結果が入力される複数のページを作成するモジュールがあります。

ページにアクセスしたときにこれらの結果をメールで送信するようにdrupal_mailとhook_mailを構成しようとしましたが、これまでのところ成功していません。

私は見つけた情報を使用しました ここ そして実際、モジュールは機能します:cronを実行するたびにサンプルメールが送信されますが、モジュールでそれをカスタマイズする方法が見つからないため、カスタムページの結果はメールで送信されます。

また、私のデータが次の結果である場合:

function mystats_all() {

$header = array('Nombre', 'Status', 'Rol 5 = Alumno', 'Email' );

$query = "
SELECT name, status, rid, mail
FROM users
JOIN users_roles ON users.uid = users_roles.uid
WHERE mail NOT LIKE '%@example.com' 
AND users_roles.rid =5
AND users.status =1
";

$result = db_query($query, $some_value);
    while ($row = db_fetch_object($result))
    { 
        $rows[] = array(
                    array('data' => $row->name, 'align' =>'left'),
                    array('data' => $row->status, 'align' => 'left'),
                    array('data' => $row->rid, 'align' => 'center'),    
                    array('data' => $row->mail, 'align' => 'left'),    

        );
    }

    $table_attributes = array('id' => 'my_id_for_table', 'align' => 'center');
    $output .= theme('table', $header, $rows, $table_attributes);

    return $output; 

テーブルをメールで正しく送信するにはどうすればよいですか? $ queryまたは$ resultを使用する必要があるかどうかはわかりません(そして、drupal_mail関数を機能させていくつかのテストを実行したいと思います)。

よろしくお願いします。

何かアイデアや助けをお願いしますか?

1
MauF

カスタムモジュールに hook_mail() を実装してから、ページコールバック関数で drupal_mail() を呼び出して、必要な結果を得る必要があります。テーブルhtmlをhook_mail()に配信される$params配列に保存し、そこで$message['body']値として設定する必要があります(必要に応じて追加のhtml/dataを使用)。リンクされたチュートリアルとAPIページには、残りの詳細を理解するのに十分な情報と例が記載されているはずです。

1
Madis