如何分析Email模块接收、发送邮件失败的Log
2012-11-28 09:34
369 查看
首先,抓取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()这两个接口函数。
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()这两个接口函数。
相关文章推荐
- android平台phonegap开发中使用EmailComposer插件发送邮件带附件失败的问题总结
- 如何使用sendEmail发送邮件
- 如何使用sendEmail发送邮件
- Android 短信模块分析(五) MMS之彩信的发送与接收
- 如何限制部分Notes用户接收发送Internet邮件
- 如何使用sendEmail发送邮件
- Python_使用smtplib和email模块发送邮件
- Python_使用smtplib和email模块发送邮件
- python利用smtplib模块和email模块发送各类邮件的方法
- python email ==> send 发送邮件 :) [smtplib, email 模块]
- windows 8上使用SmtpClient.Send()发送邮件失败的原因分析。
- 如何使用 Cdosys.dll 库使用 Visual C# 中发送电子邮件带有附件接收邮件
- 二种python发送邮件实例讲解(python发邮件附件可以使用email模块实现)
- python中使用smtplib和email模块发送邮件实例
- Java Mail 发送邮件失败问题:Sending the email to the following server failed
- 实现发邮件方法,随机返回失败成功,50个线程同时调用sendEmail发送1000封邮件,统计发送失败和成功的个数
- How to send mail using any email account through Foxmail ? - Foxmail 6 漏洞,如何通过 Foxmail 用任意邮件账号发送邮件?
- 如何使用sendEmail发送邮件
- Python_使用smtplib和email模块发送邮件
- 解决Jenkins Email Extension Plugin发送邮件失败