+ std::string bodypart=(char *)(*i)->GetContent();\r
+#ifdef DO_CHARSET_CONVERSION\r
+ std::string charset=(*i)->GetCharset();\r
+ if(charset!="" && charset!="UTF-8")\r
+ {\r
+ CharsetConverter ccv;\r
+ if(ccv.SetConversion(charset,"UTF-8"))\r
+ {\r
+ std::string output="";\r
+ ccv.Convert(bodypart,output);\r
+ bodypart=output;\r
+ }\r
+ }\r
+#endif\r
+ m_body+=bodypart;\r
+ }\r
+ // add a binary file attachment\r
+ else if(((*i)->GetName()!="" || (*i)->GetFilename()!="") && (*i)->GetLength()>0 && (*i)->GetContent())\r
+ {\r
+ std::string filename="";\r
+ std::string contenttype="";\r
+ std::vector<unsigned char> data((*i)->GetContent(),(*i)->GetContent()+(*i)->GetContentLength());\r
+ if((*i)->GetContentType())\r
+ {\r
+ contenttype=(*i)->GetContentType();\r
+ // find first ; tab cr or lf and erase it and everything after it\r
+ std::string::size_type endpos=contenttype.find_first_of(";\t\r\n ");\r
+ if(endpos!=std::string::npos)\r
+ {\r
+ contenttype.erase(endpos);\r
+ }\r
+ }\r
+ filename=(*i)->GetFilename();\r
+ if(filename=="")\r
+ {\r
+ filename=(*i)->GetName();\r
+ }\r
+ m_fileattachments.push_back(fileattachment(filename,contenttype,data));\r