diff --git a/src/sbbs3/postmsg.cpp b/src/sbbs3/postmsg.cpp
index c4899b75bc5ff4f09af0c9a33e146dbab6649fa6..a1d5f56e2060f781379bf7a6d706df879ce19ba2 100644
--- a/src/sbbs3/postmsg.cpp
+++ b/src/sbbs3/postmsg.cpp
@@ -336,6 +336,20 @@ bool sbbs_t::postmsg(uint subnum, long wm_mode, smb_t* resmb, smbmsg_t* remsg)
 		,cfg.grp[cfg.sub[subnum]->grp]->sname,cfg.sub[subnum]->lname);
 	logline("P+",str);
 
+	if(!(msgattr & MSG_ANONYMOUS)) {
+		if(cfg.sub[subnum]->misc&SUB_NAME)
+			i = userdatdupe(0, U_NAME, LEN_NAME, touser);
+		else
+			i = matchuser(&cfg, touser, TRUE /* sysop_alias */);
+		if(i > 0 && i != useron.number) {
+			SAFEPRINTF4(str, text[MsgPostedToYouVia]
+				,cfg.sub[subnum]->misc&SUB_NAME ? useron.name : useron.alias
+				,connection
+				,cfg.grp[cfg.sub[subnum]->grp]->sname,cfg.sub[subnum]->lname);
+			putsmsg(&cfg, i, str);
+		}
+	}
+
 	signal_sub_sem(&cfg,subnum);
 
 	user_event(EVENT_POST);
@@ -477,6 +491,32 @@ extern "C" int DLLCALL savemsg(scfg_t* cfg, smb_t* smb, smbmsg_t* msg, client_t*
 				ftouch(cmdstr(cfg,NULL,cfg->netmail_sem,nulstr,nulstr,NULL));
 		} else
 			signal_sub_sem(cfg,smb->subnum);
+
+		if(msg->to_net.type == NET_NONE && !(msg->hdr.attr & MSG_ANONYMOUS) && cfg->text != NULL) {
+			if(msg->to_ext != NULL)
+				i = atoi(msg->to_ext);
+			else if(smb->subnum != INVALID_SUB && (cfg->sub[smb->subnum]->misc & SUB_NAME))
+				i = userdatdupe(cfg, 0, U_NAME, LEN_NAME, msg->to, /* del: */FALSE, /* next: */FALSE, NULL, NULL);
+			else
+				i = matchuser(cfg, msg->to, TRUE /* sysop_alias */);
+			if(i > 0 && (client == NULL || i != client->usernum)) {
+				char str[256];
+				if(smb->subnum == INVALID_SUB) {
+					safe_snprintf(str, sizeof(str), cfg->text[UserSentYouMail], msg->from);
+					putsmsg(cfg, i, str);
+				} else {
+					char fido_buf[64];
+					const char* via = smb_netaddrstr(&msg->from_net, fido_buf);
+					if(via == NULL)
+						via = (client == NULL) ? "" : client->protocol;
+					safe_snprintf(str, sizeof(str), cfg->text[MsgPostedToYouVia]
+						,msg->from
+						,via
+						,cfg->grp[cfg->sub[smb->subnum]->grp]->sname,cfg->sub[smb->subnum]->lname);
+					putsmsg(cfg, i, str);
+				}
+			}
+		}
 	}
 	return(i);
 }