Diffstat (limited to 'noncore/net/mail/libmailwrapper') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/net/mail/libmailwrapper/mailtypes.cpp | 13 | ||||
-rw-r--r-- | noncore/net/mail/libmailwrapper/mailtypes.h | 4 | ||||
-rw-r--r-- | noncore/net/mail/libmailwrapper/mailwrapper.h | 3 | ||||
-rw-r--r-- | noncore/net/mail/libmailwrapper/smtpwrapper.cpp | 29 |
4 files changed, 47 insertions, 2 deletions
diff --git a/noncore/net/mail/libmailwrapper/mailtypes.cpp b/noncore/net/mail/libmailwrapper/mailtypes.cpp index bf91c63..96e0fd5 100644 --- a/noncore/net/mail/libmailwrapper/mailtypes.cpp +++ b/noncore/net/mail/libmailwrapper/mailtypes.cpp @@ -36,2 +36,3 @@ void RecMail::copy_old(const RecMail&old) wrapper = old.wrapper; + in_reply_to = old.in_reply_to; } @@ -43,2 +44,3 @@ void RecMail::init() bcc.clear(); + in_reply_to.clear(); wrapper = 0; @@ -86,2 +88,13 @@ const QStringList& RecMail::Bcc()const +void RecMail::setInreply(const QStringList&list) +{ + in_reply_to = list; +} + +const QStringList& RecMail::Inreply()const +{ + return in_reply_to; +} + + RecPart::RecPart() diff --git a/noncore/net/mail/libmailwrapper/mailtypes.h b/noncore/net/mail/libmailwrapper/mailtypes.h index b2047cb..1420f79 100644 --- a/noncore/net/mail/libmailwrapper/mailtypes.h +++ b/noncore/net/mail/libmailwrapper/mailtypes.h @@ -61,2 +61,4 @@ public: const QStringList&Bcc()const; + void setInreply(const QStringList&list); + const QStringList&Inreply()const; const QBitArray&getFlags()const{return msg_flags;} @@ -71,3 +73,3 @@ protected: QBitArray msg_flags; - QStringList to,cc,bcc; + QStringList to,cc,bcc,in_reply_to; AbstractMail*wrapper; diff --git a/noncore/net/mail/libmailwrapper/mailwrapper.h b/noncore/net/mail/libmailwrapper/mailwrapper.h index caaa3a2..3a9f97b 100644 --- a/noncore/net/mail/libmailwrapper/mailwrapper.h +++ b/noncore/net/mail/libmailwrapper/mailwrapper.h @@ -57,2 +57,4 @@ public: void setReply( const QString&a ) { reply = a; } + void setInreply(const QStringList&list){m_in_reply_to = list;} + const QStringList&Inreply()const{return m_in_reply_to;} @@ -61,2 +63,3 @@ private: QString name, mail, to, cc, bcc, reply, subject, message; + QStringList m_in_reply_to; }; diff --git a/noncore/net/mail/libmailwrapper/smtpwrapper.cpp b/noncore/net/mail/libmailwrapper/smtpwrapper.cpp index d7a005e..63acfd5 100644 --- a/noncore/net/mail/libmailwrapper/smtpwrapper.cpp +++ b/noncore/net/mail/libmailwrapper/smtpwrapper.cpp @@ -151,2 +151,3 @@ mailimf_fields *SMTPwrapper::createImfFields(const Mail&mail ) { mailimf_address_list *to=0, *cc=0, *bcc=0, *reply=0; + clist*in_reply_to = 0; char *subject = strdup( mail.getSubject().latin1() ); @@ -177,5 +178,31 @@ mailimf_fields *SMTPwrapper::createImfFields(const Mail&mail ) { reply = parseAddresses( mail.getReply() ); + + if (mail.Inreply().count()>0) { + in_reply_to = clist_new(); + char*c_reply; + unsigned int nsize = 0; + for (QStringList::ConstIterator it=mail.Inreply().begin(); + it != mail.Inreply().end();++it) { + /* yes! must be malloc! */ + if ((*it).isEmpty()) + continue; + QString h((*it)); + while (h.length()>0 && h[0]=='<') { + h.remove(0,1); + } + while (h.length()>0 && h[h.length()-1]=='>') { + h.remove(h.length()-1,1); + } + if (h.isEmpty()) continue; + nsize = strlen(h.latin1()); + c_reply = (char*)malloc( (nsize+1)*sizeof(char)); + memset(c_reply,0,nsize+1); + memcpy(c_reply,h.latin1(),nsize); + clist_append(in_reply_to,c_reply); + qDebug("In reply to: %s",c_reply); + } + } fields = mailimf_fields_new_with_data( from, sender, reply, to, cc, bcc, - NULL, NULL, subject ); + in_reply_to, NULL, subject ); if ( fields == NULL ) |