#include "pephelpers.h"
|
|
|
|
KMime::Message::Ptr pEpKDE::to_mMessage(message *m)
|
|
{
|
|
KMime::Message::Ptr mMessage;
|
|
|
|
if(!m) {
|
|
return mMessage;
|
|
}
|
|
|
|
mMessage->from()->from7BitString( QByteArray(m->from->address) );
|
|
mMessage->to()->from7BitString( QByteArray(m->to->ident->address) );
|
|
foreach ( KMime::Content *attachment, mMessage->contents() ) {
|
|
attachment->setContent(QByteArray("pEp"));
|
|
attachment->contentType()->setMimeType(QByteArray("text/plain"));
|
|
}
|
|
|
|
return mMessage;
|
|
}
|
|
|
|
void pEpKDE::mboxlist_to_message(KMime::Types::Mailbox::List mboxlist, identity_list* peplist)
|
|
{
|
|
KMime::Types::Mailbox mbox;
|
|
foreach ( mbox, mboxlist ) {
|
|
peplist = identity_list_add(peplist,
|
|
new_identity(
|
|
mbox.address().data(),
|
|
"",
|
|
mbox.address().split('@').at(0).data(),
|
|
mbox.name().toLatin1().data()
|
|
)
|
|
);
|
|
}
|
|
}
|
|
|
|
message* pEpKDE::to_pEpMessage(KMime::Message::Ptr mMessage, PEP_msg_direction direction)
|
|
{
|
|
KMime::Types::Mailbox mbox;
|
|
if(!mMessage)
|
|
return NULL;
|
|
|
|
message *m = new_message(direction);
|
|
if(!m)
|
|
return NULL;
|
|
|
|
m->longmsg = mMessage->decodedContent().data(),
|
|
m->longmsg_formatted = mMessage->decodedContent().data(),
|
|
|
|
mbox = mMessage->from()->mailboxes().at(0);
|
|
m->from = new_identity(
|
|
mbox.address().data(),
|
|
"",
|
|
mbox.address().split('@').at(0).data(),
|
|
mbox.name().toLatin1().data()
|
|
);
|
|
|
|
mboxlist_to_message( mMessage->to()->mailboxes(), m->to );
|
|
mboxlist_to_message( mMessage->cc()->mailboxes(), m->cc );
|
|
mboxlist_to_message( mMessage->bcc()->mailboxes(), m->bcc );
|
|
mboxlist_to_message( mMessage->replyTo()->mailboxes(), m->reply_to );
|
|
|
|
foreach ( KMime::Content *attachment, mMessage->contents() ) {
|
|
m->attachments = bloblist_add(
|
|
m->attachments,
|
|
attachment->decodedContent().data(),
|
|
attachment->size(),
|
|
attachment->contentType()->mimeType().data(),
|
|
MimeTreeParser::NodeHelper::fileName(attachment).toLatin1().data()
|
|
);
|
|
}
|
|
|
|
return m;
|
|
|
|
#if 0
|
|
m.id=""; // UTF-8 string of message ID
|
|
m.shortmsg=""; // UTF-8 string of short message
|
|
m.longmsg=""; // UTF-8 string of long message (plain)
|
|
m.longmsg_formatted=""; // UTF-8 string of long message (formatted)
|
|
|
|
bloblist_t attachments;
|
|
m.attachments=&attachments; // blobs with attachements
|
|
|
|
m.rawmsg_ref=""; // reference to raw message data
|
|
m.rawmsg_size=0; // size of raw message data
|
|
|
|
timestamp sent;
|
|
m.sent=&sent; // when the message is sent
|
|
|
|
timestamp recv;
|
|
m.recv=&recv; // when the message is received
|
|
|
|
pEp_identity from;
|
|
m.from=&from; // whom the message is from
|
|
|
|
identity_list to;
|
|
m.to=&to; // whom the message is to
|
|
|
|
pEp_identity recv_by;
|
|
m.recv_by=&recv_by; // via which identity the message is received
|
|
|
|
identity_list cc;
|
|
m.cc=&cc; // whom a CC is being sent
|
|
|
|
identity_list bcc;
|
|
m.bcc=&bcc; // whom a BCC is being sent
|
|
|
|
identity_list reply_to;
|
|
m.reply_to=&reply_to; // where a reply should go to
|
|
|
|
stringlist_t in_reply_to;
|
|
m.in_reply_to=&in_reply_to; // list of UTF-8 strings with MessageIDs of refering messages
|
|
|
|
/*
|
|
struct _message *refering_msg_ref; // reference to refering message
|
|
stringlist_t *references; // list of UTF-8 strings with references
|
|
struct _message_ref_list *refered_by; // list of references to messages being
|
|
// refered
|
|
stringlist_t *keywords; // list of UTF-8 strings with keywords
|
|
char *comments; // UTF-8 string with comments
|
|
stringpair_list_t *opt_fields; // optional fields
|
|
PEP_enc_format enc_format; // format of encrypted data
|
|
char* _sender_fpr; // INTERNAL USE ONLY - fingerprint of
|
|
// sending signer.
|
|
// (read_only to the outside)
|
|
*/
|
|
|
|
#endif
|
|
}
|
|
|