int send_mail(int sockfd, const char *from, const char *to,
const char *replyto, char *mailmap, size_t mailsize,
const char *listdir, const char *mlmmjbounce,
- const char *hdrs, size_t hdrslen, const char *body,
- size_t bodylen);
+ const char *hdrs, const char *body);
int send_mail_many_fd(int sockfd, const char *from, const char *replyto,
char *mailmap, size_t mailsize, int subfd,
const char *listaddr, const char *listdelim,
const char *archivefilename, const char *listdir,
- const char *mlmmjbounce, const char *hdrs, size_t hdrslen,
- const char *body, size_t bodylen);
+ const char *mlmmjbounce, const char *hdrs,
+ const char *body);
int send_mail_many_list(int sockfd, const char *from, const char *replyto,
char *mailmap, size_t mailsize, struct strlist *addrs,
const char *listaddr, const char *listdelim,
const char *archivefilename, const char *listdir,
- const char *mlmmjbounce, const char *hdrs, size_t hdrslen,
- const char *body, size_t bodylen);
+ const char *mlmmjbounce, const char *hdrs, const char *body);
int send_mail_verp(int sockfd, struct strlist *addrs, char *mailmap,
- size_t mailsize, const char *from, const char *listdir,
- const char *hdrs, size_t hdrslen, const char *body,
- size_t bodylen, const char *extra);
+ size_t mailsize, const char *from,
+ const char *hdrs, const char *body, const char *extra);
int initsmtp(int *sockfd, const char *relayhost, unsigned short port, const char *heloname);
int endsmtp(int *sockfd);
int send_mail(int sockfd, const char *from, const char *to,
const char *replyto, char *mailmap, size_t mailsize,
const char *listdir, const char *mlmmjbounce,
- const char *hdrs, size_t hdrslen, const char *body,
- size_t bodylen)
+ const char *hdrs, const char *body)
{
int retval = 0;
char *reply, *reply2, *tohdr;
}
int send_mail_verp(int sockfd, struct strlist *addrs, char *mailmap,
- size_t mailsize, const char *from, const char *listdir,
- const char *hdrs, size_t hdrslen, const char *body,
- size_t bodylen, const char *verpextra)
+ size_t mailsize, const char *from,
+ const char *hdrs, const char *body, const char *verpextra)
{
int retval, i;
char *reply, *reply2;
char *mailmap, size_t mailsize, int subfd,
const char *listaddr, const char *listdelim,
const char *archivefilename, const char *listdir,
- const char *mlmmjbounce, const char *hdrs, size_t hdrslen,
- const char *body, size_t bodylen)
+ const char *mlmmjbounce, const char *hdrs,
+ const char *body)
{
int res, ret, i;
struct strlist stl;
ret = send_mail_many_list(sockfd, from, replyto,
mailmap, mailsize, &stl, listaddr,
listdelim, archivefilename, listdir,
- mlmmjbounce, hdrs, hdrslen,
- body, bodylen);
+ mlmmjbounce, hdrs, body);
for(i = 0; i < stl.count; i++)
free(stl.strs[i]);
if(ret < 0)
ret = send_mail_many_list(sockfd, from, replyto, mailmap,
mailsize, &stl, listaddr, listdelim,
archivefilename, listdir, mlmmjbounce,
- hdrs, hdrslen, body, bodylen);
+ hdrs, body);
for(i = 0; i < stl.count; i++)
free(stl.strs[i]);
stl.count = 0;
char *mailmap, size_t mailsize, struct strlist *addrs,
const char *listaddr, const char *listdelim,
const char *archivefilename, const char *listdir,
- const char *mlmmjbounce, const char *hdrs, size_t hdrslen,
- const char *body, size_t bodylen)
+ const char *mlmmjbounce, const char *hdrs, const char *body)
{
int res = 0, i, status, index;
char *bounceaddr, *addr;
if(from) {
res = send_mail(sockfd, from, addr, replyto,
mailmap, mailsize, listdir, NULL,
- hdrs, hdrslen, body, bodylen);
+ hdrs, body);
} else {
bounceaddr = bounce_from_adr(addr, listaddr, listdelim,
archivefilename, listdir);
res = send_mail(sockfd, bounceaddr, addr, replyto,
mailmap, mailsize, listdir, mlmmjbounce,
- hdrs, hdrslen, body, bodylen);
+ hdrs, body);
free(bounceaddr);
}
if(res && listaddr && archivefilename) {
initsmtp(&sockfd, relayhost, smtpport, smtphelo);
if(send_mail(sockfd, bounceaddr, to_addr, replyto,
mailmap, st.st_size, listdir, NULL,
- hdrs, hdrslen, body, bodylen)) {
+ hdrs, body)) {
close(sockfd);
sockfd = -1;
/* error, so keep it in the queue */
initsmtp(&sockfd, relayhost, smtpport, smtphelo);
if(send_mail_many_fd(sockfd, bounceaddr, NULL, mailmap,
st.st_size, subfd, NULL, NULL, NULL,
- listdir, NULL, hdrs, hdrslen,
- body, bodylen)) {
+ listdir, NULL, hdrs, body)) {
close(sockfd);
sockfd = -1;
} else {
initsmtp(&sockfd, relayhost, smtpport, smtphelo);
if(send_mail_many_fd(sockfd, NULL, NULL, mailmap, st.st_size,
subfd, listaddr, listdelim, mailfilename,
- listdir, mlmmjbounce, hdrs, hdrslen,
- body, bodylen)) {
+ listdir, mlmmjbounce, hdrs, body)) {
close(sockfd);
sockfd = -1;
} else {
if(send_mail_many_fd(sockfd, bounceaddr, NULL, mailmap,
st.st_size, subfd, listaddr, listdelim,
mailfilename, listdir, mlmmjbounce,
- hdrs, hdrslen, body, bodylen)) {
+ hdrs, body)) {
close(sockfd);
sockfd = -1;
} else {
initsmtp(&sockfd, relayhost, smtpport, smtphelo);
if(send_mail(sockfd, bounceaddr, to_addr, replyto,
mailmap, st.st_size, listdir, NULL,
- hdrs, hdrslen, body, bodylen)) {
+ hdrs, body)) {
close(sockfd);
sockfd = -1;
/* error, so remove the probefile */
mailmap,
st.st_size,
verpfrom,
- listdir, hdrs,
- hdrslen, body,
- bodylen, verp);
+ hdrs,
+ body, verp);
if(sendres)
requeuemail(listdir,
mindex,
archivefilename,
listdir,
mlmmjbounce,
- hdrs, hdrslen,
- body, bodylen);
+ hdrs, body);
}
if (sendres) {
close(sockfd);
initsmtp(&sockfd, relayhost, smtpport, smtphelo);
if(verp) {
sendres = send_mail_verp(sockfd, &stl, mailmap,
- st.st_size, verpfrom, listdir,
- hdrs, hdrslen, body, bodylen,
- verp);
+ st.st_size, verpfrom,
+ hdrs, body, verp);
if(sendres)
requeuemail(listdir, mindex, &stl,
0);
NULL, mailmap, st.st_size,
&stl, listaddr, listdelim,
archivefilename, listdir,
- mlmmjbounce, hdrs, hdrslen,
- body, bodylen);
+ mlmmjbounce, hdrs, body);
}
if (sendres) {
close(sockfd);
fromaddr, "-m", queuefilename, NULL);
}
-static void subscribe_type(char *listdir, char *listaddr, char *listdelim,
- char *address, char *mlmmjsend,
- enum subtype typesub, enum subreason reasonsub) {
+static void subscribe_type(char *listdir, char *address, enum subtype typesub) {
char *subfilename = NULL;
char chstr[2], *subdir;
char *subddirname = NULL;
if (typesub == SUB_BOTH) {
if (subbed != SUB_NORMAL) {
- subscribe_type(listdir, listaddr, listdelim, address,
- mlmmjsend, SUB_NORMAL, reasonsub);
+ subscribe_type(listdir, address, SUB_NORMAL);
}
if (subbed != SUB_DIGEST) {
- subscribe_type(listdir, listaddr, listdelim, address,
- mlmmjsend, SUB_DIGEST, reasonsub);
+ subscribe_type(listdir, address, SUB_DIGEST);
}
} else if (!(subbed == SUB_BOTH && typesub != SUB_NOMAIL)) {
- subscribe_type(listdir, listaddr, listdelim, address,
- mlmmjsend, typesub, reasonsub);
+ subscribe_type(listdir, address, typesub);
}
if(confirmsub) {