diff --git a/src/cpp/Attachment.cpp b/src/cpp/Attachment.cpp index 6a3f70c..d34792f 100644 --- a/src/cpp/Attachment.cpp +++ b/src/cpp/Attachment.cpp @@ -65,7 +65,14 @@ const string Attachment::ALTERNATIVE ("alternative"); const regex Attachment::nameCharsetRegEx (".*name\\*=(.*)"); const regex Attachment::nameRegEx (".*name=\"([^\"]*)\".*"); -const regex Attachment::boundaryRegEx (".*boundary=\"?([^\" ]*)\"?.*"); +// boundary="----=_Part_796779_1154936629.1668080348646" +// boundary="------------040709000505010508040808" +// boundary="----------=_1668606031-941125-91" +// boundary="_004_PAVPR10MB6792713B313048E3A259B215B2079PAVPR10MB6792EURP_"; +// boundary="_000_PAVPR10MB6792713B313048E3A259B215B2079PAVPR10MB6792EURP_" +// boundary=--boundary_1351_64006126-2b0e-4a3b-98ac-4797d1634188 +// boundary=--boundary_1352_7e294c9a-cfab-44a0-bfb3-7310380ac7cb; +const regex Attachment::boundaryRegEx (".*boundary=\"?([^\"; ]*)\"?;?.*"); const regex Attachment::cidDefRegEx (".*<([^>]*)>.*"); const regex Attachment::textRegEx (".*text/("+PLAIN+"|"+HTML+").*"); const regex Attachment::multiRegEx ("\\s*multipart/(mixed|"+RELATED+"|"+ALTERNATIVE+").*"); @@ -354,7 +361,11 @@ Attachment::nextBondary (ifstream &mbox, streamoff &curPos) { ++it) if (couple.find (*it) != string::npos) { LOG ("find: "+ *it); - subAttachements.back ().toUpdate = true; + LOG ("size: " << subAttachements.size ()); + if (subAttachements.size ()) + subAttachements.back ().toUpdate = true; + else + LOG_BUG (true, continue, "eMailShrinker: bug A10: boundary format ? " << *this); } prev = clearLine; continue; @@ -489,7 +500,7 @@ kaz::operator << (ostream& os, const Attachment& attachment) { if (prop.length ()) prop = " ["+prop+"]"; - os << setw ((attachment.level % 20)*2) << "" << setw (10) << SizeArg (attachment.getSize ()) << " " << attachment.getContentType () + os << ("****************************************"+40-(attachment.level % 20)*2) << setw (10) << SizeArg (attachment.getSize ()) << " " << attachment.getContentType () << prop << (attachment.cid.length () ? " id: "+attachment.cid : "") << (attachment.boundary.length () ? " boundary: "+attachment.boundary : "") << " (" << attachment.beginPos << " / " << attachment.contentPos << " / " << attachment.endPos << ") " << endl; diff --git a/src/cpp/MainAttachment.cpp b/src/cpp/MainAttachment.cpp index 0258633..47ef605 100644 --- a/src/cpp/MainAttachment.cpp +++ b/src/cpp/MainAttachment.cpp @@ -51,68 +51,75 @@ using namespace std; using namespace kaz; -static const string KAZ_WEB_SITE = "https://kaz.bzh/"; -static const string TMPL_DOWNLOAD = "{{DOWNLOAD}}"; -static const string TMPL_FILENAME = "{{FILENAME}}"; -static const string CID = "cid:"; +static const string KAZ_WEB_SITE ("https://kaz.bzh/"); +static const string TMPL_DOWNLOAD ("{{DOWNLOAD}}"); +static const string TMPL_FILENAME ("{{FILENAME}}"); +static const string CID ("cid:"); // "l=/" => v1 compatibility static const regex archiveURLSignature (".*(([&?]g=)|([&?]l=/)).*"); -static const string KAZ_PLAIN_HR = "______________________________________________________________________________"; -static const string KAZ_PLAIN_START = "~~ PJ-KAZ !"; // don't end whith space -static const string KAZ_PLAIN_STOP = KAZ_PLAIN_START+" ~~"; -static const string KAZ_PLAIN_DONT_TOUCH = "(conservez cette partie intacte dans votre réponse si vous voulez transmettre les documents précédents)"; -static const string KAZ_PLAIN_WARNING = "Attention : Kaz a dépollué ce message. Les pièces jointes ont été retirées et placées dans un dépôt provisoire. Elles seront automatiquement supprimées dans 1 mois. Si elles sont importantes et que vous souhaitez les conserver, vous devez utiliser les liens ci-dessous. Pour mieux comprendre la politique de nos services visitez kaz.bzh"; -static const string KAZ_PLAIN_DOWLOAD_ONE = "Vos pièces jointes sont à télécharger individuellement ici :"; -static const string KAZ_PLAIN_DOWLOAD_OTHER = "(Contenu dans des messages précédents)"; -static const string KAZ_PLAIN_DOWLOAD_ALL = "Vous pouvez télécharger l'ensemble dans une archive là :"; +static const string KAZ_PLAIN_HR ("______________________________________________________________________________"); +static const string KAZ_PLAIN_START ("~~ PJ-KAZ !"); // don't end whith space +static const string KAZ_PLAIN_STOP (KAZ_PLAIN_START+" ~~"); +static const string KAZ_PLAIN_DONT_TOUCH ("(conservez cette partie intacte dans votre réponse si vous voulez transmettre les documents précédents)"); +static const string KAZ_PLAIN_WARNING ("Attention : Kaz a dépollué ce message. Les pièces jointes ont été retirées et placées dans un dépôt provisoire. " + "Elles seront automatiquement supprimées dans 1 mois. " + "Si elles sont importantes et que vous souhaitez les conserver, vous devez utiliser les liens ci-dessous. " + "Pour mieux comprendre la politique de nos services visitez kaz.bzh"); +static const string KAZ_PLAIN_DOWLOAD_ONE ("Vos pièces jointes sont à télécharger individuellement ici :"); +static const string KAZ_PLAIN_DOWLOAD_OTHER ("(Contenu dans des messages précédents)"); +static const string KAZ_PLAIN_DOWLOAD_ALL ("Vous pouvez télécharger l'ensemble dans une archive là :"); -static const string HEAD = "
"; -static const string HEAD_END = ""; -static const string KAZ_CSS_URL = "https://kaz.bzh/m/email.css"; -static const string KAZ_CSS = ""; -static const string A_END = ""; -static const string LI_BEGIN = "