-
短信无法发出原因再分析
发表于 2010年08月30日 4 条评论在前面暗香曾经说过短信无法发送的问题,当时的原因主要是用户修改了会员注册项,将系统默认的字段给终止使用了,然后自己增加了一个新的会员项,结果导致系统在启动短信流程时无法发送成功。
当然解决方法也非常简单,就是恢复系统默认的字段就可以了。
详情可见:修改会员注册项导致短信发送失败后来暗香又发过关于短信的一篇文章,当时的问题是在后台的短信队列中积压了大量短信,无法发出,不论如何操作,短信就是发不出去,一直积压。
然后时暗香与研发人员讨了一个小文件,更新这个文件后,系统会定期检测短信队列中的积压情况,当有积压时,就会调用发送进程,而以前这个检测在某一次结束后就会停止的。
详情可见:短信为何赖着不出去?这几天暗香虽然少在论坛上活动,但接触的问题还是比较多的,特别是其中短信方面的问题遇到了不少用户来反馈。
在处理过程中,暗香逐渐发现一些规律,靠这些规律处理同类问题的成功率是非常高的,可以说大多数短信有问题的用户按这个流程走基本上全部OK
接下来,暗香就来就坚决的把这个流程贡献出来,如果哪位朋友也遇到了此类问题,可以照章办事的哟,别吐…
首先要说明的是,在整个问题处理过程中,自动短信(注册、订单创建等)没有任何问题的,只是在后台手动群发短信时堵塞进程从而造成积压。
如果您的自动短信有问题,可能要您另外找原因了,或者配置,或者充值的短信已经用光,请相应处理。
回到当前,先来说说短信问题的表象:
手动给某人或某些人发短信后一直收不到,在后台短信“队列”中查看时,发现队列中积压了大量短信,如图:

而正常的情况下,这里面是空的。里面不为空,说明短信进程出现问题了,可以先尝试更新前面暗香提供的解决进行的文件,如果OK了,那就OK了。如果不OK,那我们继续。
同样在后台,点击查看邮件的发送队列,与短信队列一样,正常情况下,这里面也应该是空的,如果不为空,则说明也堵塞了。
多数情况下,我们会发现,邮件的队列也是堵塞的,而堵塞的原因多种多样,但收件人地址不正确居多,如图:

在图中可以看到,用户的地址五花八门,还有中文等。邮件地址不正确除了某些人恶意为之外,另外一个原因就是使用了通淘宝功能后同步过来的用户的邮件地址有问题,目前通淘宝功能已经进行了调整,在同步用户信息时会进行选择。
不过先前已经同步过来的邮件还得您自己进行修改,否则后面还会出现这样的情况的。
如果发送邮件的队列排在了短信的前面,而邮件又由于错误的收件人地址无法发送,那么系统就会卡在这里,无法进行。
所以们的处理方法就是修改错误的邮件地址,或先清空邮件队列。
接下来的处理流程就需要稍有些技术了,因为我们要操作数据库,为了安全,请先备份数据库或找有技术功底的人来操作,否则出了问题暗香可不负责哟…
先拿到空间的FTP,然后上传数据库管理软件phpmyadmin,如果您的空间已经内置了则无需上传。
数据库信息在config/config.php中…配置过程省略…打开phpmyadmin,找到表sdb_msgqueue,这个表是专门用来供发送即时信息的,而邮件与短信队列是共用这个表的。
找到这个表后,浏览这个表中的内容,然后我们会发现里面的内容全是我们刚才在后台看到的,如图:

邮件地址都是有问题的,所以选中后全部干掉。然后只保留是手机号的那种内容就可以了,因为这些全是我们要发送的短信。
到这一步任务基本完成了,重新进入后台,你会发现每一次进入短信流程,里面的内容都不同的,因为系统在一直往外发送,队列会逐渐减少,直至全部消失…
这样,短信问题就全部OK了…
PS:七号补丁已经有多个版本了,如果您是比较早更新补丁的,现在重新下载,重新更新吧!
累了,休息一下…
4 responses to “短信无法发出原因再分析”

-
The credit loans seem to be important for guys, which would like to ground their organization. In fact, it is comfortable to receive a consolidation loan.
-
你好,在使用shopex时发现,使用的qq邮箱的SMTP。用gmail注册,试用“测试收信”功能给gmail发信,能够成功收到信,但是,在下单后没有收到确认邮件。而用qq邮箱注册却一直能够收到确认邮件。请问这是什么原因
-


Mitzi19Randolph 2010年09月15日 02:37