#include <fstream>
#include <general.h>
#include <sfolderrfc.h>
#include <stringtools.h>
#include <rfc1522.h>
#include <logf.h>
#include "deliverrfc.h"
bool match_header(const rfcmessaget &m,
const std::string &header,
const std::string &pattern)
{
const char *start=m.data, *text;
bool mime_decode=FALSE;
if(stringcasecmp(header, "From")==0 ||
stringcasecmp(header, "Subject")==0)
mime_decode=TRUE;
while(!m.findheader(&start, header.c_str(), &text))
{
std::string header_text;
m.copyheadertext(header_text, text);
if(mime_decode)
header_text=decode_rfc1522(header_text);
if(check_joker(pattern, header_text, TRUE))
return TRUE;
}
return FALSE;
}
#include "deliver.t"
typedef deliver_mailt<rfcmessaget> rfc_deliver_mailt;
bool deliver_mail(rfcmessaget &m,
userpt &up,
const std::string &envelope_to,
const std::string &envelope_from)
{
rfc_deliver_mailt deliver_mail(m, up, envelope_to, envelope_from);
return deliver_mail.deliver_mail();
}
syntax highlighted by Code2HTML, v. 0.9.1