【问题标题】:How do I configure Mailgun for Moodle?如何为 Moodle 配置 Mailgun?
【发布时间】:2016-11-18 14:36:39
【问题描述】:

Mailgun 与 Moodle 一起使用的正确配置是什么?我在 Google Cloud 上使用 Bitnami Moodle 图像。

  • SMTP 主机:smtp.mailgun.org

  • SMTP 安全性:无

  • SMTP 验证类型:登录

  • SMTP 用户名:poastmaster@mymgdomain.com
  • SMTP 密码:在帐户详细信息中列出

我收到此错误消息。

发送密码更改确认邮件时出错

有关此错误的更多信息

调试信息: 错误代码:cannotmailconfirm 堆栈跟踪: /lib/setuplib.php 的第 495 行:抛出了 moodle_exception /login/lib.php 的第 110 行:调用 print_error() /login/forgot_password.php 的第 81 行:调用 core_login_process_password_reset_request() 输出缓冲区:

 2016-11-18 14:21:25 连接:打开 smtp.mailgun.org:25,超时=300,选项=数组() 2016-11-18 14:23:32 SMTP 错误:连接失败到服务器:连接超时 (110) 2016-11-18 14:23:32 SMTP connect() 失败。 https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting 

【问题讨论】:

    标签: email moodle mailgun


    【解决方案1】:

    Google Compute Engine 不允许端口 25、465 和 587 上的出站连接。默认情况下,这些出站 SMTP 端口会被阻止,因为这些端口容易受到大量滥用。

    出站端口 25 为 blocked on Google Cloud。 Mailgun mirrors 587, on port 2525 - 所以尝试使用端口 2525。

    作为快速测试,您还可以尝试从命令行远程登录以检查连接,如下所示:

    > telnet smtp.mailgun.org 2525
    

    【讨论】:

    • 我在 Mailgun 的日志中看到消息已被接受并传递。我还没有在我的收件箱中看到它们,但可能会有延迟。我想知道 mailgun 是否更喜欢该端口的 TLS?
    【解决方案2】:

    您应该尝试使用端口465 而不是端口25,并将加密设置为SSL

    我没有亲自使用过moodle,但我相信你可以这样做: UPDATE mdl_config SET value='ssl://smtp.mailgun.org:465' WHERE name='smtphosts';

    【讨论】:

      【解决方案3】:

      我刚刚在数字海洋的服务器上完成了这项工作。所以这里的解决方案:

      • 配置您的 DNS 并在 mailgun 应用程序上进行检查;
      • 在凭据中获取您的 smtp 密码;
      • SMTP 主机:smtp.mailgun.org:587
      • SMTP 安全性:tls
      • SMTP 验证类型:登录
      • SMTP 用户名:poastmaster@
      • SMTP 密码:

      这里的诀窍是端口 587。我尝试了所有方法,但成功了。作为奖励,如果您可以通过 ssh 访问您的服务器,您可以通过以下方式从终端发送电子邮件:

      ./swaks --auth \
          --server smtp.mailgun.org:587 \
          --au postmaster@<yourdomain> \
          --ap <smtpcredential> \
          --to anyemail@youwantosend.com \
          --h-Subject: "Teste Moodle" \
          --body 'Testing some Mailgun awesomness!'
      

      而且,当你运行moodle时,如果你想对php做同样的事情:

      <?php
      use PHPMailer\PHPMailer\PHPMailer;
      use PHPMailer\PHPMailer\Exception;
      
      require 'path/to/PHPMailer/src/Exception.php';
      require 'path/to/PHPMailer/src/PHPMailer.php';
      require 'path/to/PHPMailer/src/SMTP.php';
      
      $mail = new PHPMailer;
      
      $mail->isSMTP();                                      // Set mailer to use SMTP
      $mail->Host = 'smtp.mailgun.org:587';                 // Specify main and backup SMTP servers
      $mail->SMTPAuth = true;                               // Enable SMTP authentication
      $mail->Username = 'postmaster@moodle.gpematec.com.br';     // SMTP username
      $mail->Password = '<your credetials>';                           // SMTP password
      $mail->SMTPSecure = 'tls';                            // Enable encryption, only 'tls' is accepted
      
      $mail->From = 'youremail@yourdomain.com';
      $mail->FromName = 'You';
      $mail->addAddress('anyemail@youwantosend.com');                 // Add a recipient
      
      $mail->WordWrap = 50;                                 // Set word wrap to 50 characters
      
      $mail->Subject = 'PHP subject';
      $mail->Body    = 'Email from php!';
      
      if(!$mail->send()) {
          echo 'Message could not be sent.';
          echo 'Mailer Error: ' . $mail->ErrorInfo;
      } else {
          echo 'Message has been sent';
      }
      ?>
      

      【讨论】:

        猜你喜欢
        • 2019-01-30
        • 1970-01-01
        • 2016-01-23
        • 2017-05-11
        • 2018-08-16
        • 2014-07-16
        • 1970-01-01
        • 1970-01-01
        • 2014-06-12
        相关资源
        最近更新 更多