29 |
header_t hdr; |
header_t hdr; |
30 |
char *str; |
char *str; |
31 |
msgset_t *msglist, *mp; |
msgset_t *msglist, *mp; |
32 |
struct send_environ env; |
compose_env_t env; |
33 |
int status; |
int status; |
34 |
|
|
35 |
env.to = env.cc = env.bcc = env.subj = NULL; |
compose_init (&env); |
|
env.outfiles = NULL; env.nfiles = 0; |
|
36 |
if (msgset_parse (argc, argv, &msglist)) |
if (msgset_parse (argc, argv, &msglist)) |
37 |
return 1; |
return 1; |
38 |
|
|
47 |
message_get_header(msg, &hdr); |
message_get_header(msg, &hdr); |
48 |
if (header_aget_value(hdr, MU_HEADER_SUBJECT, &str) == 0) |
if (header_aget_value(hdr, MU_HEADER_SUBJECT, &str) == 0) |
49 |
{ |
{ |
50 |
util_strcat(&env.subj, "Re: "); |
char *p = NULL; |
51 |
util_strcat(&env.subj, str); |
|
52 |
free(str); |
if (strncasecmp (str, "Re:", 3)) |
53 |
|
util_strcat (&p, "Re: "); |
54 |
|
util_strcat (&p, str); |
55 |
|
free (str); |
56 |
|
compose_header_set (&env, MU_HEADER_SUBJECT, p, COMPOSE_REPLACE); |
57 |
|
free (p); |
58 |
} |
} |
59 |
|
|
60 |
/* Generate "to" list */ |
/* Generate "to" list */ |
61 |
env.to = util_get_sender(cursor, 0); |
compose_header_set (&env, MU_HEADER_TO, util_get_sender (cursor, 0), |
62 |
|
COMPOSE_SINGLE_LINE); |
63 |
|
|
64 |
/* Add authors of the subsequent messages to the to list |
/* Add authors of the subsequent messages to the to list |
65 |
(or should it be cc?)*/ |
(or should it be cc?)*/ |
66 |
for (mp = msglist; mp; mp = mp->next) |
for (mp = msglist; mp; mp = mp->next) |
67 |
{ |
compose_header_set (&env, MU_HEADER_TO, |
68 |
util_strcat(&env.to, ","); |
util_get_sender(mp->msg_part[0], 0), |
69 |
util_strcat(&env.to, util_get_sender(mp->msg_part[0], 0)); |
COMPOSE_SINGLE_LINE); |
|
} |
|
70 |
|
|
71 |
msgset_free(msglist); |
msgset_free(msglist); |
72 |
|
|
73 |
fprintf(ofile, "To: %s\n", env.to); |
fprintf (ofile, "To: %s\n", |
74 |
fprintf(ofile, "Subject: %s\n\n", env.subj); |
compose_header_get (&env, MU_HEADER_TO, "")); |
75 |
|
fprintf (ofile, "Subject: %s\n\n", |
76 |
|
compose_header_get (&env, MU_HEADER_SUBJECT, "")); |
77 |
|
|
78 |
status = mail_send0(&env, isupper(argv[0][0])); |
status = mail_send0(&env, isupper(argv[0][0])); |
79 |
free_env_headers (&env); |
compose_destroy (&env); |
80 |
return status; |
return status; |
81 |
} |
} |