Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2557|回复: 0
打印 上一主题 下一主题

发信逻辑

[复制链接]

388

主题

602

帖子

2218

积分

金牌会员

Rank: 6Rank: 6

积分
2218
跳转到指定楼层
楼主
发表于 2016-4-19 12:22:58 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
发送逻辑
src\app\conversations\modules\stdlib\send.js
function sendMessage(aParams,...
gMsgCompose.SendMsg(deliverType, identity, identity.key, options && options.msgWindow, progress);
\mailnews\compose\src\nsMsgCompose.cpp
nsMsgCompose::SendMsg
nsMsgCompose::_SendMsg
\mailnews\compose\src\nsMsgSend.cpp
nsMsgComposeAndSend::CreateAndSendMessage(
nsMsgComposeAndSend::Init(
nsMsgComposeAndSend::HackAttachments(nsIArray *attachments,
nsMsgComposeAndSend::GatherMimeAttachments()  ///注意nsMsgAttachmentHandler这个会造成这个函数多次调用

发送后,保存到已发送方案
1. smtp copy  ??
DoFcc()  // mCompFields->GetFcc(); 如果保存到已经发送,这里执行邮件的拷贝操作,imap再对拷贝后的邮件进行同步

MimeDoFCC

还有另外一种逻辑?
FetcherURLDoneCallback(nsresult aStatus,
                       const nsACString &aContentType,
                       const nsACString &aCharset,
                       int32_t totalSize,
                       const char16_t* aMsg, void *tagData)
{
return ma->UrlExit(aStatus, aMsg);
}
nsMsgAttachmentHandler::UrlExit(nsresult status, const char16_t* aMsg)
{
  status = m_mime_delivery_state->GatherMimeAttachments ();
}
nsMsgComposeAndSend::GatherMimeAttachments()
{
status = DeliverMessage();
}

nsMsgSend.cpp

nsMsgComposeAndSend:eliverMessage() {
  return DeliverFileAsMail();
}

nsMsgComposeAndSend:eliverFileAsMail()
{
MsgDeliveryListener *deliveryListener = new MsgDeliveryListener(this, false); //mMsgSend->SendDeliveryCallback(url, mIsNewsDelivery, aExitCode);
nsCOMPtr<nsIInterfaceRequestor> callbacks;
    GetNotificationCallbacks(getter_AddRefs(callbacks));
rv = smtpService->SendMailMessageWithExtraInfo(mTempFile, buf, mUserIdentity,
                                      mSmtpPassword.get(), deliveryListener, msgStatus,
                                      callbacks, mCompFields->GetDSN(),
                                      to, subject,
                                      getter_AddRefs(runningUrl),
                                      getter_AddRefs(mRunningRequest));
}

2.imap append

mail.identity.default.fcc;true

mail.identity.id1.fcc_folder;imap://ccc@firemail.com/Sent    %identitykey%

mail.identity.id1.fcc_folder_picker_mode;0     0已发送邮件夹  1其它自定义邮件夹


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|firemail ( 粤ICP备15085507号-1 )

GMT+8, 2024-11-26 18:40 , Processed in 0.059018 second(s), 20 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

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