コースリクエスト時の差出人メールアドレスについて

コースリクエスト時の差出人メールアドレスについて

- Ai ChiSato の投稿
返信数: 5

こんにちは、メールの設定内容で質問です。

今回、3.1.4から3.3.4+へVerUPを行いました。

3.1.4までは利用者がコースリクエストをした後、管理者に送信され
るメールアドレスの差出人は、利用者のプロファイルに登録された
メールアドレスが表示されていました。

ですが、3.3.4+にVerUPした後は、管理者に送られるコースリクエ

ストのメールの差出人アドレスが noreply@(Moodleホスト名)と

なってしまいます。

一応、それらしい箇所(↓)を変更しましたが、noreply@で同じ状況です。
サイト管理 /  サーバ /  メール /  送信メール設定
メール表示設定>メール送信元情報(emailfromvia)を
なし・常に・no-replyアドレスからの場合のみ
全て変更して確認しましたが、変わらずです。

現在のサーバについては以下の通りです。
Moodle:3.3.4+(Build:20180125)
PHP:5.6.34
Apache:2.4.6
OS:CentOS 7.4


よろしくお願いいたします。

Ai ChiSato への返信

Re: コースリクエスト時の差出人メールアドレスについて

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

下記プログラム修正ではいかがでしょうか。

修正対象プログラム:
lib/moodlelib.php

修正箇所:
5816行目

[ 修正前 ]
    // Make up an email address for handling bounces.
    if (!empty($CFG->handlebounces)) {
        $modargs = 'B'.base64_encode(pack('V', $user->id)).substr(md5($user->email), 0, 16);
        $mail->Sender = generate_email_processing_address(0, $modargs);
    } else {
        $mail->Sender = $noreplyaddress;
    }

    // Make sure that the explicit replyto is valid, fall back to the implicit one.
    if (!empty($replyto) && !validate_email($replyto)) {
        debugging('email_to_user: Invalid replyto-email '.s($replyto));
        $replyto = $noreplyaddress;
    }

[ 修正後 ]
    // Make up an email address for handling bounces.
    if (!empty($CFG->handlebounces)) {
        $modargs = 'B'.base64_encode(pack('V', $user->id)).substr(md5($user->email), 0, 16);
        $mail->Sender = generate_email_processing_address(0, $modargs);
    } else {
        $mail->Sender = $noreplyaddress;
    }

    if ($subject = get_string('courserequest')) {
        $noreplyaddress = $from->email;
        $replyto = $noreplyaddress;
    }

    // Make sure that the explicit replyto is valid, fall back to the implicit one.
    if (!empty($replyto) && !validate_email($replyto)) {
        debugging('email_to_user: Invalid replyto-email '.s($replyto));
        $replyto = $noreplyaddress;
    }

Mitsuhiro Yoshida への返信

Re: コースリクエスト時の差出人メールアドレスについて

- Ai ChiSato の投稿

Mitsuhiro Yoshida 様


早速のお返事ありがとうございます。

lib/moodlelib.php について、ご案内の通り修正を試したところ、

管理者に届くコースリクエストの差出人がnoreply@から、

プロファイルのメールアドレスに変更されていることを確認しました。


重ねて御礼申し上げます。ありがとうございました。

Ai ChiSato への返信

Re: コースリクエスト時の差出人メールアドレスについて

- Ai ChiSato の投稿
ご無沙汰しております。

>lib/moodlelib.php について、ご案内の通り修正を試したところ、

>管理者に届くコースリクエストの差出人がnoreply@から、

>プロファイルのメールアドレスに変更されていることを確認しました。


こちらの件、その後運用を進めていたのですが、なぜか自動バックアップ
ステータスのレポートメールまで、コースリクエストと件名が表示されてしまって
いる事が確認されました。
現在は、moodlelib.phpの変更箇所を元に戻して、復旧しております。ただ、
差出人欄は以前と同じnoreply@のままです。

原因を確認しておりますが、取り急ぎご案内いたします。
Ai ChiSato への返信

Re: コースリクエスト時の差出人メールアドレスについて

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

大変申し訳ございません。

2018年 03月 12日(月曜日) 18:41に投稿させて頂きました修正案の比較演算子 (==) の記述が間違っておりました。
よろしければ、ご都合のよろしい時に下記修正をお試しください。

修正対象プログラム:
lib/moodlelib.php

修正箇所:
5816行目

[ 修正前 ]
    // Make up an email address for handling bounces.
    if (!empty($CFG->handlebounces)) {
        $modargs = 'B'.base64_encode(pack('V', $user->id)).substr(md5($user->email), 0, 16);
        $mail->Sender = generate_email_processing_address(0, $modargs);
    } else {
        $mail->Sender = $noreplyaddress;
    }

    // Make sure that the explicit replyto is valid, fall back to the implicit one.
    if (!empty($replyto) && !validate_email($replyto)) {
        debugging('email_to_user: Invalid replyto-email '.s($replyto));
        $replyto = $noreplyaddress;
    }

[ 修正後 ]
    // Make up an email address for handling bounces.
    if (!empty($CFG->handlebounces)) {
        $modargs = 'B'.base64_encode(pack('V', $user->id)).substr(md5($user->email), 0, 16);
        $mail->Sender = generate_email_processing_address(0, $modargs);
    } else {
        $mail->Sender = $noreplyaddress;
    }

    if ($subject == get_string('courserequest')) {
        $noreplyaddress = $from->email;
        $replyto = $noreplyaddress;
    }

    // Make sure that the explicit replyto is valid, fall back to the implicit one.
    if (!empty($replyto) && !validate_email($replyto)) {
        debugging('email_to_user: Invalid replyto-email '.s($replyto));
        $replyto = $noreplyaddress;
    }

Mitsuhiro Yoshida への返信

Re: コースリクエスト時の差出人メールアドレスについて

- Ai ChiSato の投稿

お返事が遅くなり申し訳ございません。

テストサーバで再度確認したところ、問題なく表示がされました。

本番機も別途機会を見て変更をしようかと思います。


早速のご返答、ありがとうございました。