mantisbt2.22.1 中使用自带的phpmailer发送邮件(实测可用)

mantis最新版本安装无难度,直接集成LAMP环境,解压放到web目录下运行,按界面显示一步步操作。

1.前提默认已安装好mantis,自带phpmailer的路径为:mantisbt2/vendor/phpmailer/phpmailer (这里不用管该目录下的内容,不需要做任何修改,只是说明下路径)。

2.只需要修改mantis目录config/config_inc.php文件即可(若当前目录没有,手动touch创建一个)

 1 # --- Email Configuration ---
 2 $g_phpMailer_method             = PHPMAILER_METHOD_SMTP; #使用SMTP传送协议
 3 $g_smtp_host                    = 'smtp.163.com';#我使用的163邮箱,若使用QQ的就直接修改为:smtp.qq.com
 4 $g_smtp_port                    = 994;  #994是163免费邮箱的端口号,若使用QQ的 需要修改为:587
 5 $g_smtp_username                = 'testtestets';#邮箱地址前缀,就是 @ 前边的
 6 $g_smtp_password                = 'xxxxfabadfsadfmhea1';#第三方登录时申请的邮箱授权码,不是自己注册的明文密码。需要登录官方webmail地址,一般在首页的 设置→帐户→POP3/SMTP 申请开启服务,按要求操作会返回一个 授权码(就是左边用的密码)
 7 $g_smtp_connection_mode         = 'ssl';#163的994端口使用ssl加密,若使用QQ的587端口需要修改加密方式为:tls
 8 
 9 $g_enable_email_notification    = ON;#开启邮件通知
10 $g_send_reset_password          = ON;#开启通过邮件重设密码
11 $g_lost_password_feature        = ON;#开启密码丢失找回,首页那个“忘记密码”
12 $g_max_lost_password_in_progress_count = 3;#忘记密码可找回的最大次数,超过则锁定帐号
13 
14 $g_webmaster_email              = 'testtest@163.com';#应该是左下角那个联系管理员,显示的邮箱地址
15 $g_from_email                   = 'testest@163.com'; #From处显示发件人地址
16 $g_return_path_email = 'testest@163.com'; #邮件发送失败的退回地址
17 $g_from_name = 'Bug Tracker'; #发件人昵称

3.以上所有的配置信息,其实在目录 mantis/config_defaults_inc.php 里均有,建议直接复制到上边的config_inc.php单独修改配置

4.发送邮件失败可能遇到的问题(无论是linux或win端):需要查看对应的端口是否被占用或被防火墙阻止:

a.我使用的Centos7.5,放行端口:firewall-cmd --permanent --zone=public --add-port=994/tcp,重载生效:firewall-cmd --reload

b.保证php启用了OPENSSL,使用phpinfo() 查看运行结果即可:

5.实在不行,就使用php发送邮件直接测试查看错误,

a.首先打开php的调试模式,修改..../etc/php.ini中的display_errors = On,调试完记得关闭;

b.添加如下代码,保存为sendmail.php文件,执行php sendmail.php 若有问题依据结果排查即可

 1 <?php
 2 use phpmailerphpmailerPHPMailer;
 3 use phpmailerphpmailerException;
 4 //引入项目
 5 require './phpmailer/src/Exception.php';
 6 require './phpmailer/src/PHPMailer.php';
 7 require './phpmailer/src/SMTP.php';
 8 
 9 //实例化PHPMail类
10 $mail = new PHPMailer(true);
11 try {
12     //Server settings
13     $mail->SMTPDebug = 2;
14     $mail->isSMTP(); 
15     $mail->Host = 'smtp.163.com';
16     $mail->SMTPAuth = true;
17     $mail->Username = 'testtest@163.com';
18     $mail->Password = '13123123qtxxxxxmhea1';#跟上边一样的授权码
19 
20     $mail->SMTPSecure = 'ssl';
21     $mail->Port = 994;
22     $mail->CharSet='UTF-8';
23 
24     //发件人
25     $mail->setFrom('testtest@163.com', 'Mailer');
26 
27     //收件人。多收件人可设置多个addAddress
28     $mail->addAddress('123456789@qq.com', 'nickname');//收件人邮箱地址,收件人姓名(选填)
29 
30 
31     //发送附件
32     #$mail->addAttachment('/var/tmp/file.tar.gz'); // 添加附件
33     #$mail->addAttachment('/tmp/image.jpg', 'new.jpg'); // 设置附件以及附件名称
34 
35     //邮件内容
36     $mail->isHTML(true); // 发送html格式邮件
37     $mail->Subject = '标题'; //邮件标题
38     $mail->Body    = '邮件测试内容 <b>hello.</b>';
39 
40     $mail->send();
41     echo 'Message has been sent';
42 } catch (Exception $e) {
43     echo 'Message could not be sent. Mailer Error: ', $mail->ErrorInfo;
44 }
45 ?>
 
原文地址:https://www.cnblogs.com/sc912/p/11864683.html