line breaks in text attachments
Stanislaw T. Findeisen <
sf181257@...>
2007-11-10 10:07:11 GMT
Hello
I am experiencing problems with line breaks in text attachments. I wrote
a sample program to demonstrate this problem:
=========================================================
/**
* Based on compose-msg.c
*/
#include <stdlib.h>
#include <string.h>
#include <libetpan/libetpan.h>
struct mailimf_fields * build_fields() {
const char * subject = "line breaks";
struct mailimf_mailbox_list * from = mailimf_mailbox_list_new_empty();
struct mailimf_address_list * to = mailimf_address_list_new_empty();
mailimf_mailbox_list_add_parse(from, "DINH Viet Hoa
<hoa@...>");
mailimf_address_list_add_parse(to, "Paul <claws@...>");
struct mailimf_fields * new_fields = mailimf_fields_new_with_data(from,
NULL, NULL, to, NULL, NULL, NULL, NULL, strdup(subject));
return new_fields;
}
int main(int argc, char ** argv) {
const char * attachmentFilename = "file-1.txt";
const char * sampleText1 = "ab\ncd";
const char * sampleText1Charset = "iso-8859-1";
const int sampleText1Length = strlen(sampleText1);
printf("Sample text length is: %d\n", sampleText1Length);
printf("Sample text is: %s\n", sampleText1);
// start the message
struct mailimf_fields * fields = build_fields();
struct mailmime * message = mailmime_new_message_data(NULL);
mailmime_set_imf_fields(message, fields);
// build attachment
struct mailmime_fields * mime_fields =
mailmime_fields_new_filename(MAILMIME_DISPOSITION_TYPE_ATTACHMENT,
strdup(attachmentFilename), MAILMIME_MECHANISM_QUOTED_PRINTABLE);
struct mailmime_content * mime_content =
mailmime_content_new_with_str("text/plain");
struct mailmime_parameter * mime_param =
mailmime_param_new_with_data("charset", strdup(sampleText1Charset));
clist_append(mime_content->ct_parameters, mime_param);
struct mailmime * mime_sub = mailmime_new_empty(mime_content,
mime_fields);
mailmime_set_body_text(mime_sub, strdup(sampleText1),
sampleText1Length);
// add attachment to the message
mailmime_smart_add_part(message, mime_sub);
// write the message out
printf("==== Printing the message:\n\n");
int col = 0;
mailmime_write(stdout, &col, message);
mailmime_free(message);
printf("#DONE\n");
return 0;
}
=========================================================
The output of this program on my computer is:
=========================================================
Sample text length is: 5
Sample text is: ab
cd
==== Printing the message:
Date: Sat, 10 Nov 2007 10:57:56 +0100
From: DINH Viet Hoa <hoa@...>
To: Paul <claws@...>
Message-ID: <etPan.473580a4.6b8b4567.2ecb <at> thinkpad>
Subject: line breaks
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment; filename="file-1.txt"
ab
#DONE
=========================================================
It seems that the last line is cut out.
When using "sample text\nwith\nseveral\nlines." as a sample text, the
last line is being cut also.
With different encodings like utf-8 the problem was the same.
Am I doing anything wrong, or is this a bug?
Thanks.
STF
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Libetpan-users mailing list
Libetpan-users@...
https://lists.sourceforge.net/lists/listinfo/libetpan-users