// If we have a DKIM key, try to sign the message.
char *dkim_private_key = CtdlGetConfigStr("dkim_private_key");
char *dkim_selector = CtdlGetConfigStr("dkim_selector");
- if (!IsEmptyStr(dkim_private_key) && !IsEmptyStr(dkim_selector)) {
+ char *dkim_from_domain = (strchr(fromaddr, '@') ? strchr(fromaddr, '@')+1 : NULL);
+ if (!IsEmptyStr(dkim_private_key) && !IsEmptyStr(dkim_selector) && !IsEmptyStr(dkim_from_domain)) {
char *pkey = strdup(dkim_private_key);
if (pkey) {
char *sp;
*sp = '\n';
}
syslog(LOG_DEBUG, "private key: <%s>\n", pkey);
- dkim_sign(s.TheMessage, pkey, "dev.citadel.org", dkim_selector); // FIXME use the right hostname
+ dkim_sign(s.TheMessage, pkey, dkim_from_domain, dkim_selector);
free(pkey);
}
}