Choose default sender email address by envelope recipient
[citadel.git] / webcit / msg_renderers.c
index 47d749b266e43268ee0a84181c8b50eed2c6ddfd..50a0f22714d6abcc63b146d3d1d259ad6a7d82e7 100644 (file)
@@ -51,6 +51,7 @@ void DestroyMessageSummary(void *vMsg)
        FreeStrBuf(&Msg->AllRcpt);
        FreeStrBuf(&Msg->Room);
        FreeStrBuf(&Msg->Rfca);
+       FreeStrBuf(&Msg->EnvTo);
        FreeStrBuf(&Msg->OtherNode);
 
        DeleteHash(&Msg->Attachments);  /* list of Attachments */
@@ -484,6 +485,21 @@ int Conditional_MAIL_SUMM_OTHERNODE(StrBuf *Target, WCTemplputParams *TP)
        return StrLength(Msg->OtherNode) > 0;
 }
 
+void examine_nvto(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset)
+{
+       wcsession *WCC = WC;
+
+       CheckConvertBufs(WCC);
+       FreeStrBuf(&Msg->EnvTo);
+       Msg->EnvTo = NewStrBufPlain(NULL, StrLength(HdrLine));
+       StrBuf_RFC822_2_Utf8(Msg->EnvTo, 
+                            HdrLine, 
+                            WCC->DefaultCharset, 
+                            FoundCharset,
+                            WCC->ConvertBuf1,
+                            WCC->ConvertBuf2);
+}
+
 
 void examine_rcpt(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset)
 {
@@ -1598,6 +1614,7 @@ InitModule_MSGRENDERERS
        RegisterMsgHdr(HKEY("rfca"), examine_rfca, 0);
        RegisterMsgHdr(HKEY("node"), examine_node, 0);
        RegisterMsgHdr(HKEY("rcpt"), examine_rcpt, 0);
+       RegisterMsgHdr(HKEY("nvto"), examine_nvto, 0);
        RegisterMsgHdr(HKEY("time"), examine_time, 0);
        RegisterMsgHdr(HKEY("part"), examine_mime_part, 0);
        RegisterMsgHdr(HKEY("text"), examine_text, 1);