【问题标题】:Configuring MantisBT to send emails using GMail配置 MantisBT 以使用 GMail 发送电子邮件
【发布时间】:2012-02-20 06:12:41
【问题描述】:

我是 Mantis 错误跟踪器的新手,我想在注册新帐户后启用电子邮件通知。

好吧,我在本地计算机上正确安装了MantisBT,没有任何问题,我已经更改了管理员的密码并删除了目录中的管理员文件夹。在此之后我注册了一个新帐户,有一条确认消息闪过,说我需要通过电子邮件验证我的注册。我的问题是没有验证消息发送到我的电子邮件。根据我找到的一个教程,我需要先配置我的 config_inc.php。安装后,我的config_inc.php的初始内容是

<?php
$g_hostname      = 'localhost';
$g_db_username   = '<myUser>';
$g_db_password   = '<myPass>';
$g_database_name = 'bugtracker';
$g_db_type       = 'mysql';
?>

所以我把它改成了。 *我在这里使用我的 gmail 帐户

<?php
$g_hostname      = 'localhost';
$g_db_username   = '<myUser>';
$g_db_password   = '<myPass>';
$g_database_name = 'bugtracker';
$g_db_type       = 'mysql';

$g_allow_signup             = ON;
$g_allow_anonymous_login    = OFF;
$g_anonymous_account        = '';

$g_phpMailer_method     = PHPMAILER_METHOD_SMTP; 
$g_smtp_host            = 'smtp.gmail.com';
$g_smtp_username        = '<myUser@gmail.com>';
$g_smtp_password        = '<myPass>';
$g_administrator_email  = '<myUser@gmail.com>';
$g_webmaster_email      = '<myUser@gmail.com>';
$g_from_name            = 'Mantis Bug Tracker';
$g_from_email           = '<myUser@gmail.com>';
$g_return_path_email    = '<myUser@gmail.com>';
$g_email_receive_own    = OFF;
$g_email_send_using_cronjob = OFF;

$g_allow_file_upload    = ON;
$g_file_upload_method   = DATABASE;
$g_absolute_path_default_upload_folder = '';
$g_max_file_size        = 5000000;
$g_preview_attachments_inline_max_size = 256 * 1024;
$g_allowed_files        = '';
$g_disallowed_files     = '';

$g_window_title         = 'MantisBT';
$g_logo_image           = 'images/mantis_logo.gif';
$g_favicon_image        = 'images/favicon.ico';

$g_show_realname = OFF;
$g_show_user_realname_threshold = NOBODY;

$g_default_home_page = 'my_view_page.php';
?>

我用这个覆盖我的 config_inc.php,然后注册一个新帐户。提交信息后出现错误提示:

致命错误:在第 1910 行调用 \mantis\library\phpmailer\class.phpmailer.php 中未定义的方法 SMTP::getError()。

现在我被卡住了,请帮我解决这个问题,我需要设置我的电子邮件通知。我只是在创建帐户,但我无法使用它们,因为我需要验证它。

如果我需要修改一些相关文件,请告诉我,步骤是什么。

感谢您的帮助!

【问题讨论】:

标签: notifications bug-tracking mantis bug-tracker


【解决方案1】:

根据posting on the MantisBT forums,这些是 GMail 的工作设置:

$g_phpMailer_method = PHPMAILER_METHOD_SMTP;
$g_smtp_host = 'smtp.gmail.com';
$g_smtp_username = 'username@gmail.com';
$g_smtp_password = 'yourpassword';
$g_smtp_connection_mode = 'ssl';
$g_smtp_port = 465;

【讨论】:

  • 谢谢!这个对我有用,但我删除了 smtp_host 中的“:465”,但它有效!我不知道是否有错误,但我认为已经尝试过这个(或者可能有一点不同)。无论如何,谢谢你!
  • 我使用了 WAMP,正如 mantis 论坛帖子 (fluffy.mantisbt.org/forums/viewtopic.php?f=3&t=15398) 所指出的,这需要额外的步骤: - 如果您使用的是 WAMP 服务器,请确保您已启用 Apache >>Apache 模块>> ssl_module 和 PHP>>Php 扩展>>php_openssl
【解决方案2】:

关于 GMail 的一些补充。这些设置是正确的,但 GMail 已经制定了一些新的安全措施,仍然会阻止使用 SMTP 连接器从 Mantis 或任何其他邮件程序发送电子邮件。

要使用 GMail 执行此操作,您必须 "Allow less secure apps to access accounts"。在GMail管理中,有一个设置允许用户控制“安全性较低的应用程序”的访问,必须打开该设置,然后用于发送邮件的用户帐户必须打开“安全性较低的应用程序”的访问权。上面的链接提供了有关如何配置的信息。

令人沮丧的是一切似乎都可以正常工作,但没有发送电子邮件。 SMTP 服务器没有错误指示。但是,用于发送邮件的用户帐户可能会收到一封来自 GMail 的电子邮件,表明有人正在尝试访问该帐户。我花了几个小时试图追查到这一点。

【讨论】:

    【解决方案3】:

    如果有人在配置时仍然遇到问题或错误,请添加日志级别,以便您可以进一步深入研究问题。以下设置对我有用。详细解释写here

    $g_phpMailer_method = PHPMAILER_METHOD_SMTP;
    $g_smtp_host = 'smtp.gmail.com';
    $g_smtp_port = '465';
    $g_smtp_connection_mode = 'ssl';
    $g_smtp_username = 'letzdotesting@gmail.com';
    $g_smtp_password = 'xxxxx';
    $g_administrator_email = 'letzdotesting@gmail.com';
    $g_webmaster_email = 'letzdotesting@gmail.com';
    $g_from_email = 'letzdotesting@gmail.com';
    $g_return_path_email = 'letzdotesting@gmail.com';
    $g_default_timezone = 'UTC';
    $g_log_level = LOG_EMAIL | LOG_EMAIL_RECIPIENT;
    $g_log_destination = 'file:C:\mantisbt.log';
    

    【讨论】:

    • 警告:用普通撇号替换“智能”撇号。
    【解决方案4】:
    $g_phpMailer_method = PHPMAILER_METHOD_SMTP;
    $g_smtp_host = 'smtp.gmail.com';
    $g_smtp_username        = 'username';   // without @gmail.com
    $g_smtp_password        = 'password';
    $g_smtp_connection_mode = 'ssl';
    $g_smtp_port = 465;
    

    对我有用

    【讨论】:

      【解决方案5】:

      2017 年更新(MantisBT 2.3.0)请按照以下步骤操作:

      [1] 如果您使用的是 DOCKER

      运行以下命令访问 docker 实例:

      docker exec -it {docker-id} bash
      

      [2] MANTISBT 服务器内部

      如果您没有任何编辑器:

      # sudo apt-get update
      # apt-get install vim
      

      创建一个日志文件:

      # touch /var/log/mantisbt.log
      # cd /var/log/
      # chmod 777 mantisbt.log
      

      [3] 编辑 MANTISBT 配置

      # vim /var/www/html/config/config_inc.php
      

      将以下内容添加到上一步打开的文件中:

      $g_phpMailer_method = PHPMAILER_METHOD_SMTP;
      $g_administrator_email = 'your-admin-email@gmail.com';
      $g_webmaster_email = 'your-webmaster-email@gmail.com';
      $g_return_path_email = 'your-return-email@gmail.com';
      $g_from_email = 'your-from-email@gmail.com';
      
      $g_smtp_host = 'smtp.gmail.com';
      $g_smtp_port = 465;
      $g_smtp_connection_mode = 'ssl';
      $g_smtp_username = 'username';
      $g_smtp_password = 'password';
      
      $g_log_level = LOG_EMAIL | LOG_EMAIL_RECIPIENT;
      $g_log_destination = 'file:/var/log/mantisbt.log';
      
      $g_validate_email = OFF;
      

      [4] 编辑 GMAIL 配置

      您需要这样做才能允许 MantisBT 身份验证:

      1. 访问以下网址:

        https://myaccount.google.com

      2. 导航到菜单树下的登录和安全菜单项。

      3. 选中“允许安全性较低的应用程序”选项并设置为 true

      图片:

      你可以走了! 使用这些配置进行测试和运行。 =]

      【讨论】:

      • smtp 呢?在我的 docker 图像中它丢失了
      【解决方案6】:

      通过更新 ca 证书解决了我的问题。 我在 Windows 服务器 2012 上使用 Xampp 和 PHP 7.2。

      虽然下面的链接为您提供了详细信息,但我也提到了相关部分:

      更新 CA 证书

      更新 CA 证书 要更新您的 CA 证书,请确保 您的操作系统完全是最新的 - CA 证书通常是 通过操作系统更新进行更新。或者,您可以download 最新的 CA 来自 curl 的 cert 文件,将其安装在可访问的位置(例如 /etc/ssl/cacert.pem) 并从 openssl.cafile 指向它,然后 php.ini 文件中的 curl.cainfo 指令(此位置会有所不同 根据您的操作系统和 PHP 配置;你需要把它放在哪里 超出 PHPMailer 的范围!):

      openssl.cafile = /etc/ssl/cacert.pem 
      curl.cainfo = /etc/ssl/cacert.pem
      

      https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting#updating-ca-certificates

      【讨论】:

        猜你喜欢
        • 2010-10-10
        • 1970-01-01
        • 2018-01-26
        • 2020-07-12
        • 2016-06-08
        • 1970-01-01
        • 1970-01-01
        • 2021-09-11
        • 1970-01-01
        相关资源
        最近更新 更多