well, two points...
make it...
if (!is_qp && !strncasecmp(buf, "Content-Transfer-Encoding", 25))
and...
if (strncasecmp(&buf[26],"Quoted-Printable", 16)) {
is probably not all accurate.
you should first
char *pch = strchr (&buf[26], ':') (or was it '=' here?)
and then skip as many blanks as found
while (isblank(*pch)) pch ++
and then
strncasecmp ("....", pch);