void MessageWithAttachments::SetText(const DwString& aStr) { // Create a body part and set the necessary fields MultipartBodyPart part; part.SetType(DwMime::kTypeText); part.SetSubtype(DwMime::kSubtypePlain); part.SetCte(DwMime::kCte7bit); // Set the string as the body of the body part part.SetBody(aStr); // Set this body part as the first one SetBodyPart(0, part); }
void MessageWithAttachments::AttachBinaryFile(const char* aFilename, int aType, int aSubtype) { // Get the file contents DwString str; PutFileInString(aFilename, str); // Encode using base64 encoding DwString encStr; DwEncodeBase64(str, encStr); // Create a body part and set the necessary fields MultipartBodyPart part; part.SetType(aType); part.SetSubtype(aSubtype); part.SetCte(DwMime::kCteBase64); // Set content-disposition to attachment, with filename parameter // (see RFC-1806 for information on this *experimental* header field) DwString contDisp = "attachment; filename="; contDisp += '\"'; contDisp += aFilename; contDisp += '\"'; part.SetContentDisposition(contDisp); // Set the encoded file contents as the body of the body part part.SetBody(encStr); // Make sure this is not the first part, since that is reserved for // the text if (NumberOfParts() == 0) { SetBodyPart(1, part); } else { AddBodyPart(part); } }