クイックメールブロックのheaderのFromを固定にしたい件

Re: クイックメールブロックのheaderのFromを固定にしたい件

- Tatsuya Shirai の投稿
返信数: 0

 別件で,lib/moodlelib.php の function email_to_user()を調べていて,

    if (is_string($from)) { // So we can pass whatever we want if there is need
        $mail->From     = $CFG->noreplyaddress;
        $mail->FromName = $from;
    } else if ($usetrueaddress and $from->maildisplay) {
        $mail->From     = stripslashes($from->email);
        $mail->FromName = fullname($from);
    } else {
        $mail->From     = $CFG->noreplyaddress;
        $mail->FromName = fullname($from);
        if (empty($replyto)) {
            $mail->AddReplyTo($CFG->noreplyaddress,get_string('noreplyname'));
        }
    }

このようなコードを見付けました.確かに,ダイジェストメールは個人のEmailアドレスではなく,サイトのドメインを持つ存在しないEmailアドレスです.たとえば当方のサイトですと,moodle@mech.suzuka-ct.ac.jp.

 ダイジェストメールの送信は,mod/forum/lib.phpのfunction forum_cron()の後の方,

                 if (!$mailresult =  email_to_user($userto, $site->shortname, $postsubject, $posttext, $posthtml,
                                                  '', '', $CFG->forum_replytouser)) {

こうですね.第二引数がメールの送信者の情報で,本来はオブジェクトを渡すべきなのですが,ここではサイトのショートネーム(当方ですと,mechMoodle)を渡しています.前に参照した箇所では第1のif文の条件に合致しますね.これで$CFG->noreplyaddressが電子メールアドレスで,名前がmechMoodleになるという仕組みのようです.これを利用しては如何でしょう.