51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 20506|回复: 15
打印 上一主题 下一主题

[原创] mantis邮件服务器无法自动发送邮件,请各位老师帮忙!

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-8-21 17:33:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
mantis邮件服务器无法自动发送邮件,请各位老师帮忙!谢谢!

问题情况描述如下:
mantis系统的这个功能一直可以使用。近期,公司对邮件服务器的发送和接收端口进行了限制,SMTP的端口统一更改为465, POP3端口统一为995;
自从公司设置这个限制之后,我们的mantis系统就不能给人员自动发送邮件了。新建账号后,也不能收到邮件,无法进行激活操作。
-------------------------------------------------------------------
重置密码时错误提示如下:
SYSTEM WARNING: fputs(): supplied argument is not a valid stream resource
SYSTEM WARNING: fgets(): supplied argument is not a valid stream resource

PROBLEMS SENDING MAIL TO: yao.liu@XXXXXX.com
Mailer Error: The following From address failed: nms.softwaredept@XXXXXX.com

-------------------------------------------------------------------
config_inc.php文件如下:
###########################
# mail setting
###########################
         $g_smtp_host = 'smtp.XXXXXX.com';
        $g_smtp_username = 'nms.softwaredept';
        $g_smtp_password = 'XXXXXXXXXXXX';
        $g_administrator_email = 'nms.softwaredept@XXXXXX.com';
        $g_webmaster_email = 'nms.softwaredept@XXXXXX.com';
        $g_from_email = 'nms.softwaredept@XXXXXX.com';
        $g_to_email = 'nms.softwaredept@XXXXXX.com';
        $g_return_path_email = 'nms.softwaredept@XXXXXX.com';
        $g_enable_email_notification = ON;
        $g_use_phpMailer = ON;
        #实际指定的是下面的路径 D:\mantis\core\phpmailer
        $g_phpMailer_path = 'c:/php5/core/phpmailer/';
        #$g_phpMailer_path = 'd:/mantis/core/phpmailer/';
        $g_phpMailer_method = 2;

---------------------------------------------------------
当此项目设置为:  $g_smtp_host = 'smtp.XXXXXX.com:465';
弹出如下提示:Fatal error: Maximum execution time of 60 seconds exceeded in D:\mantis\core\phpmailer\class.smtp.php on line 1018
---------------------------------------------------------
备注:使用foxmail对mantis公共帐号'nms.softwaredept@XXXXXX.com'进行了测试。使用这两个加密端口可以成功收发邮件。

我觉得应该在mantis中对端口号进行一些设置,才能解决这个问题。请大家帮忙,我该如何操作和修改。谢谢!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2009-8-24 09:44:55 | 只看该作者
各位大侠,多多指教,谢谢!
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2009-9-12 11:28:37 | 只看该作者
遇到同样问题,但是不知道怎么解决
   也没大侠相助
每思此处,倍感心酸
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2010-1-21 14:16:12 | 只看该作者

和你一样

我也是和你一模一样的问题,徘徊了1周了,就是没有找到如何解决这个问题的办法,哎,真头疼!
楼主现在知道怎么解决了吗?更新一下啊!
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2010-1-21 16:17:10 | 只看该作者
不知道你那个class.smtp.php1080行是什么,我下载的最新版本的phpmailer5.0那个文件才814行

直接在class.smtp.php里面设置断点调

看看导致的php超时错误的行是什么

再把传入的参数echo出来看看到底哪个参数有问题

理论上mail client可以做到的,php应该也可以
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2010-1-21 16:43:06 | 只看该作者
在网上找到一个类似的解决方案

今天又重新装Mantis了,不过这回使用了新的邮件地址作为mail host,最后采用了Gmail

使用常规配置,结果发现在页面看不出来错误,但是无法收到邮件。经过检查之后,发现邮件根本就没有发出去,存在问题。查了mantisbt bug 库,终于发现了这个问题,原来Gmail使用SSL,所以邮件配置也需要做一些适当的调整。

$g_phpMailer_method = 2;
$g_smtp_host = 'ssl://smtp.gmail.com:465';
$g_smtp_username = 'youmail@gmail.com';
$g_smtp_password = 'youpassword';

按照以上的配置做好之后,还需要修改你的php.ini文件,将php_openssl的extension前面的分号去掉,然后还需要下载最新的class.phpmailer.php文件覆盖原来的文件.

Download link hereunder:

http://www.mantisbt.org/bugs/view.php?id=8369

After  finished those steps, you should restart the apache service .

Congratulation, You can use the email function via Gmail.
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2010-2-5 13:57:03 | 只看该作者

真的好了!

谢谢qdlover这位抱孩子的哥们!你写的方法我调试了,真的成功了
但是我发现你提到的GMAIL,我并没有用到啊
只是在原来的smtp前加上了"'ssl://smtp.********.com:465';"
$g_smtp_username = 'youmail@*******.com';就这样就成功了!
也不太清楚哪个文件是mantisbt bug 库.
我新手,能阅读你的回帖后明白很多东西,谢谢
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2010-2-14 23:55:07 | 只看该作者
不会吧,兄弟们不是没接触过SOCKET吧,SMTP的端口缺省是25,POP3端口缺省是110,缺省的意思就是不写端口时的默认端口,现在端口改变了,当然要明确写明了。
就像WEB端口,缺省时80:http://www.163.com:80(大家试一下这个端口),可通过http://www.163.com直接访问。
如果端口改为666,则为:http://www.163.com:666
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2010-2-14 23:56:38 | 只看该作者
现在的同志们被引导了,只知道JAVA怎样写,都不写CS程序了,连简单的端口概念都不知道了。
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2010-2-21 10:28:28 | 只看该作者

不是端口号的问题

不仅仅是端口号的问题
不是只在后面追加上端口号就能解决的问题
关键在于'ssl://'这个部分的添加
可能是后面写端口号前面也必须有'ssl://
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2010-3-7 14:59:03 | 只看该作者
在 SMF 中设置 Gmail 的 SMTP 服务器
如果你也在用 SMF 论坛,那么推荐在 SMF 中设置使用 Gmail 的 SMTP 来发送激活/通知邮件。SMF 的后台提供了填写 SMTP 服务器端口的栏目,但是也没有选择 SSL 的地方。我们可以用下面的办法来实现:

进入 SMF 后台,点击“服务器设置 -> 功能配置”,在这里填写上述设置信息。SMF 这里多了一项内容,就是“端口号”(连接埠),SSL 的端口号是 465。默认填写的 25 是针对 PHP Mail 和一般 SMTP 的。



Setting Gmail SMTP on SMF



如上图所示,SMF 后台是这样设置 Gmail SMTP 的:

电子邮件类型:SMTP

SMTP 服务器:ssl://smtp.gmail.com

SMTP 连接埠:465

SMTP 帐号: somebody@gmail.com此邮件地址受阻挡spam的自动程序保护,需要激活Javascript功能才能查阅。

SMTP 密码:**************

确认密码:   **************



这里的技巧在于:直接给 SMTP 主机名称前面加上 ssl:// 协议。

SMF 还有一个特殊地方是,在这里填写的 SMTP 帐号必须与“管理员信箱”一致。点击后台的“服务器设置 -> 核心配置”,就能找到一项“管理员电子邮件”,在这里也必须填写与邮件设置那里一样的 Gmail 帐号。

Gmail 的 SMTP 邮件限量
为了防止有人利用 Gmail 的免费 SMTP 服务发送大量垃圾邮件,Gmail 规定:每个帐号通过 SMTP 每天只能发给 100 个收件人(注意:不是 100 封邮件,这个限制更严格),超过这个数量就被封号24小时;如果你登录到 Gmail 的 web 界面,则每天可以发给 500 个收件人,超过这个数量也会被封号 24 小时。

如果你的网站注册人数很多,或者论坛发帖量很大,则每天发送的激活/通知邮件很容易超过 100 封,这就违反了 Gmail 的规定,会被停用帐号 24 小说 —— 本站昨天已经经历了一次这样的处罚。

这样来说,Gmail 的 SMTP 不能用在大型网站。如果你的网站每天发送的激活/通知邮件不超过 100,我推荐使用 Gmail SMTP;如果超过这个数量,就需要寻找其它不限量的 SMTP,或者自己搭建一个 SMTP 了 —— 大型网站都会这么做。

自己搭建 SMTP 服务器
本站论坛最近人气逐渐增加,每天的激活、通知邮件也很多,Gmail 的 SMTP 已经不够用了。因此 Tiger 就搭建了一个 SMTP 服务器,用的是 Postfix for FreeBSD 程序。在测试时发现两个问题,就是下面提醒里面的,目前都已经解决。

自己搭建 SMTP 服务器的好处是:没有信件限量,或者说作为 Postmaster 你有完全的权限控制限量多少。另外,速度也很快,如果你没有开设大量帐号的话。

借助开源的 ExtMail 软件,你还可以给你的邮件服务器创建 Web 界面,这样你就得到一个名副其实的电子邮局了。如果你想给会员权限来注册免费电邮都可以。

最后提醒一下:

1、如果你自己搭建的 SMTP 发送邮件时发现被拒收,很可能是因为被 spamhaus.org 列入黑名单,你可以到他们网站进行搜索。如果证实被误判为垃圾邮件发送源,就可以申诉,请求解除封锁。已经有热心网友撰写了《spamhaus的PBL申诉图解》,你可以参考一下。

2、发往 Hotmail 的邮件会被微软服务器进行反向解析,如果解析失败就拒收。因此自己搭建 SMTP 服务器时注意必须同时做好反向解析。

3、如果你用 Gmail 或其他要求 SSL 连接的 SMTP 服务器时,发现设置正确但是无法发出邮件,请检查一下你的网站服务器是否支持以 SSL 协议访问外部 URL —— 问问你的空间商吧。



如果您在邮件设置或者搭建SMTP服务器的过程中遇到困难,欢迎到本站的 Joomla! 中文论坛 适当的版块发帖讨论。
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2010-3-7 15:01:08 | 只看该作者
GOOGLE搜索所用关键字:ssl协议 端口 SMTP
大家多用GOOGLE吧,你们的问题网上一般都有现成的答案。

回复楼上:SSL只是一种加密协议,而在网上进行的任何操作,都经过端口的。
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2010-3-24 11:11:59 | 只看该作者
我用的是foxmail收发邮件,设置如下
       $g_phpMailer_method = 2; #使用SMTP服务
       $g_smtp_host = 'XXX.XXX.XXX.XXX';
      $g_smtp_username = 'xxxx@xx.cn';
      $g_smtp_password = 'password';
      $g_return_path_email ='xxxx@xx.cn';

按上面的设置之后,在mantis当中,对某一个用户进行密码重置的时候,用该用户的邮箱来收邮件,可以正常接收。
但是对另外一个用户进行密码重置时,还是用的上面用户的邮箱来接收,这时就无法收到邮件了。对其他用户操作,同样都收不到邮件。

按理来说如果是设置有问题,那应该是所有用户都收不到邮件才对,可奇怪就奇怪在居然还有一个用户能收到邮件。哪位大侠遇到过这种怪事没?
回复 支持 反对

使用道具 举报

该用户从未签到

14#
发表于 2010-10-28 19:36:55 | 只看该作者
这个帖子好! 解决了我对sendmail 配置的疑问
回复 支持 反对

使用道具 举报

  • TA的每日心情
    擦汗
    2018-1-24 08:13
  • 签到天数: 492 天

    连续签到: 2 天

    [LV.9]测试副司令

    15#
    发表于 2016-1-19 14:57:19 | 只看该作者
    yahan618 发表于 2009-9-12 11:28
    遇到同样问题,但是不知道怎么解决
       也没大侠相助
    每思此处,倍感心酸

    7年过去了,同样的问题,还是找不到合适的解决方法。心酸。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
    发表于 2019-5-29 16:30:08 | 只看该作者
    sophie.jing 发表于 2016-1-19 14:57
    7年过去了,同样的问题,还是找不到合适的解决方法。心酸。

    10年过去了,同样的问题,还是找不到合适的解决方法。心酸。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-8 13:50 , Processed in 0.082942 second(s), 26 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表