加密后的邮件连收件人信息都没有的,没人知道这封邮件是给谁的,你要用公钥检查每一封邮件,如果能解密就说明是给自己的。
for( auto key = _keys.begin(); key != _keys.end(); ++key )
{
bts::bitchat::decrypted_message dm;
if( pm.decrypt( *key, dm ) )
{
bitchat_message_received( dm );
}
}
关于这封邮件什么时候消失,好像不确定。邮件数据是广播到 p2p网络,所有节点都能选择保存它或删除它。bytemaster好像谈过这个问题,他指出可能会有人专门提供保存服务。至于现在的keyhotee对这些邮件怎么处理的我还没仔细看,好像是有基于时间的保留策略。
请问我不在线,能够收到邮件吗?
可以,我今天上线时就收到了别人发的邮件(当然也可能是赶巧)。
我想测试一下, 我现在关闭了Keyhotee离线,能否某人帮忙发个邮件给我,然后我再打开看一下有没有发送到
5s9Mcwctm5wRELMhfpKsAe8Q9SNUBb8TAbabFvVgr7NCvbstxB
已发送,看离线能收到没
谢谢,我离线时,确实可以收到对方的邮件。
但是我有一个疑问,邮件发送后,内容一直是在网络上广播吗? 有没有timeout时间,还是说会存储到发送者本地,当收件人和发件人同时在线时,便可收到?
没看代码,瞎猜一下。知道的版友请指教 
1、因为目前通信是走的3i的中心服务器,估计邮件直接存在服务器上,对方上线时,发过去;
2、或者邮件先存在本地,定时往服务器push,如果对方不在,服务器不进行转发;直到服务器看到对方在了,就把邮件转发过去;对方一周不上线,邮件标记为发送失败。
谁愿意和我合作完成这个测试,我想试一试当发件人和收件人同时离线时,收件人先上线能否收到邮件。PM通知我测试开始,完成以下步骤。
太懒了,有空再看代码:)
步骤
1. 我先退出Keyhotee,PM通知你我离线了
2. 你发送一个邮件给我,告诉我你是谁,稍等片刻后,你也退出Keyhotee
5s9Mcwctm5wRELMhfpKsAe8Q9SNUBb8TAbabFvVgr7NCvbstxB
3. 你用论坛PM我,我登陆Keyhotee查看能否收到邮件
4. 我将测试结果发送给你,结束
我看过源码,似乎是两人都在线时是用点对点传输、不在线时则向全网广播。
Sent from my iPhone using Tapatalk
我有个问题不明白,如果收件人一直不在线,邮件一直在全网广播,那么邮件相关数据什么时候会湮灭? 毕竟blockchain上好像只包含ID相关的信息,并不会追踪邮件hash相关的信息吧?