博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何分析Email模块接收、发送邮件失败的Log
阅读量:4046 次
发布时间:2019-05-24

本文共 1873 字,大约阅读时间需要 6 分钟。

首先,抓取Email相关的Log时,应该将catcher的default filter设为 (MMI)Email,这样才能提取出Email相关的数据.
 
10A之后的版本参考下面的方法:
 Email service与Email PS交互的MSG均以 MSG_ID_EMAIL_PS_开头,根据这些消息,我们了解手机端与server交互的流程。
在分析Email的log的时候,可以直接在log里面搜索MOD_EMAIL, Message type选择为primitive,然后Find all,这样和email相关的log都可以搜索到。
1. 可以在log中查看连接smtp/pop3 server是否成功,需要查看MSG_ID_EMAIL_PS_CONN_REQ和MSG_ID_EMAIL_PS_CONN_RSP这两条消息,并且看MSG_ID_EMAIL_PS_CONN_RSP这个消息的返回的result的ret,如果是1,连接就成功了。如果是0,就要看errcode和error_string,并且在Email_ps_public.h里面的email_ps_error_code这个enum里面找到相应的errcode,可以知道初步的连接失败的原因;而error_string是server端发过来的error string,告知client为什么会连接失败。
2. 可以在log中查看验证用户名和密码是否成功,需要查看MSG_ID_EMAIL_PS_AUTH_REQ和MSG_ID_EMAIL_PS_AUTH_RSP
两条消息,MSG_ID_EMAIL_PS_AUTH_RSP这个消息返回的result的ret,如果是1,用户名和密码就验证成功了。如果是0,在Email_ps_public.h里面的email_ps_error_code这个enum里面找到相应的errcode和error_string,可以知道初步的验证失败的原因;error_string是server端发过来的error string,告知client为什么会认证失败。
3. 在下载邮件的过程中可能会发生下载失败的情况,可以通过log里面的MSG_ID_EMAIL_PS_MSG_FETCH_REQ
和MSG_ID_EMAIL_PS_MSG_FETCH_RSP这两条消息来定位失败的原因。和上面一样,也可以看errcode和error_string来知道下载失败的原因。
4. 在发送邮件的过程中也可能会发生发送失败的情况,可以通过log里面的MSG_ID_EMAIL_PS_MSG_SEND_REQ和MSG_ID_EMAIL_PS_MSG_SEND_RSP这两条消息来定位发送失败的原因。和上面一样,也可以看errcode和error_string来知道下载失败的原因。
09B之前的版本参考下面的方法:
在接收和发送邮件时抓取的log,邮件的信息主要是从网络传递过来的,所以需要关注的两条消息是MSG_ID_MMI_EMAIL_TCPIP_TCM_DATA_REQ和MSG_ID_MMI_EMAIL_TCPIP_TCM_DATA_IND;后面一条消息里面的peer buff存放的是从server端返回的邮件的源码。前面一条消息存放的是手机给server发送的command。可以通过检查邮件的源码来检查邮件出现的异常情况。
 
在进入inbox的时候抓取的log,可以通过MSG_ID_MMI_EMAIL_FOLDER_SELECT_REQ和MSG_ID_MMI_EMAIL_FOLDER_SELECT_RSP这两条消息来确定inbox里面邮件的信息,比如inbox’里面的邮件的数目,邮件主题的charset,sender address等等信息。通常如果邮件主题显示乱码的话可以通过主题的charset来确定代码中是否定义了这种字符集。这条消息携带的重要的参数可以参考mmi_email_ps_folder_select_rsp()这个接口函数。
 
在view邮件时抓取的log,可以通过MSG_ID_MMI_EMAIL_FOLDER_MSG_SELECT_REQ和MSG_ID_MMI_EMAIL_FOLDER_MSG_SELECT_RSP这两条消息来确定该封邮件的信息。里面重要的参数可以参考mmi_email_ps_folder_msg_select_req(),
mmi_email_ps_folder_msg_select_rsp()这两个接口函数。

转载地址:http://vsgdi.baihongyu.com/

你可能感兴趣的文章
js判断数组内是否有重复值
查看>>
js获取url链接携带的参数值
查看>>
gdb 调试core dump
查看>>
gdb debug tips
查看>>
arm linux 生成火焰图
查看>>
linux和windows内存布局验证
查看>>
linux insmod error -1 required key invalid
查看>>
linux kconfig配置
查看>>
linux不同模块completion通信
查看>>
linux printf获得时间戳
查看>>
C语言位扩展
查看>>
linux irqdebug
查看>>
git 常用命令
查看>>
linux位操作API
查看>>
uboot.lds文件分析
查看>>
uboot start.s文件分析
查看>>
没有路由器的情况下,开发板,虚拟机Ubuntu,win10主机,三者也可以ping通
查看>>
本地服务方式搭建etcd集群
查看>>
安装k8s Master高可用集群
查看>>
忽略图片透明区域的事件(Flex)
查看>>