diff --git a/util/dvsim/FlowCfg.py b/util/dvsim/FlowCfg.py
index 876a726..cf6c100 100644
--- a/util/dvsim/FlowCfg.py
+++ b/util/dvsim/FlowCfg.py
@@ -13,7 +13,7 @@
 import hjson
 
 from Deploy import Deploy
-from utils import VERBOSE, md_results_to_html, parse_hjson, print_msg_list, subst_wildcards
+from utils import VERBOSE, md_results_to_html, parse_hjson, subst_wildcards
 
 
 # Interface class for extensions.
@@ -83,10 +83,16 @@
         self.results_summary_server_html = ""
         self.results_summary_server_page = ""
 
-        # Full and summary results in md text.
+        # Full results in md text
         self.results_md = ""
+        # Selectively sanitized md results to be mailed out or published
+        self.email_results_md = ""
+        self.publish_results_md = ""
+        self.sanitize_email_results = False
+        self.sanitize_publish_results = False
+        # Summary results, generated by over-arching cfg
+        self.email_summary_md = ""
         self.results_summary_md = ""
-        self.email_summary_md = ""  # if user wanted to customize email content
 
     def __post_init__(self):
         # Run some post init checks
@@ -490,7 +496,7 @@
             # otherwise default to send out results_summary_md
             gen_results = self.email_summary_md or self.results_summary_md
         else:
-            gen_results = self.results_md
+            gen_results = self.email_results_md or self.results_md
         results_html = md_results_to_html(self.results_title, self.css_file, gen_results)
         results_html_file = self.scratch_root + "/email.html"
         f = open(results_html_file, 'w')
@@ -613,14 +619,15 @@
             rm_cmd = self.results_server_cmd + " -m rm -r " + rm_cmd + "; "
 
         # Append the history to the results.
-        results_md = self.results_md + history_txt
+        publish_results_md = self.publish_results_md or self.results_md
+        publish_results_md = publish_results_md + history_txt
 
         # Publish the results page.
         # First, write the results html file temporarily to the scratch area.
         results_html_file = self.scratch_path + "/results_" + self.timestamp + ".html"
         f = open(results_html_file, 'w')
         f.write(
-            md_results_to_html(self.results_title, self.css_file, results_md))
+            md_results_to_html(self.results_title, self.css_file, publish_results_md))
         f.close()
         rm_cmd += "/bin/rm -rf " + results_html_file + "; "
 
diff --git a/util/dvsim/LintCfg.py b/util/dvsim/LintCfg.py
index 6683c62..54d627e 100644
--- a/util/dvsim/LintCfg.py
+++ b/util/dvsim/LintCfg.py
@@ -14,6 +14,7 @@
 from OneShotCfg import OneShotCfg
 from utils import print_msg_list, subst_wildcards
 
+
 class LintCfg(OneShotCfg):
     """Derivative class for linting purposes.
     """
@@ -192,9 +193,21 @@
         if len(table) > 1:
             self.results_md = results_str + tabulate(
                 table, headers="firstrow", tablefmt="pipe",
-                colalign=colalign) + "\n" + fail_msgs
+                colalign=colalign) + "\n"
+
+            # the email and published reports will default to self.results_md if they are
+            # empty. in case they need to be sanitized, override them and do not append
+            # detailed messages.
+            if self.sanitize_email_results:
+                self.email_results_md = self.results_md
+            if self.sanitize_publish_results:
+                self.publish_results_md = self.results_md
+            # locally generated result always contains all details
+            self.results_md += fail_msgs
         else:
             self.results_md = results_str + "\nNo results to display.\n"
+            self.email_results_md = self.results_md
+            self.publish_results_md = self.results_md
 
         # Write results to the scratch area
         self.results_file = self.scratch_path + "/results_" + self.timestamp + ".md"
diff --git a/util/dvsim/SynCfg.py b/util/dvsim/SynCfg.py
index 1cddae3..4e329db 100644
--- a/util/dvsim/SynCfg.py
+++ b/util/dvsim/SynCfg.py
@@ -353,23 +353,33 @@
                              ("Elab Errors", "elab_errors"),
                              ("Compile Warnings", "compile_warnings"),
                              ("Compile Errors", "compile_errors")]
-
+            fail_msgs = ""
             has_msg = False
             for _, key in hdr_key_pairs:
                 if key in self.result['messages']:
                     has_msg = True
                     break
 
-            if has_msg and not self.args.publish:
-                results_str += "\n### Errors and Warnings for Build Mode `'" + mode.name + "'`\n"
+            if has_msg:
+                fail_msgs += "\n### Errors and Warnings for Build Mode `'" + mode.name + "'`\n"
                 for hdr, key in hdr_key_pairs:
                     msgs = self.result['messages'].get(key)
-                    results_str += print_msg_list("#### " + hdr, msgs, self.max_msg_count)
+                    fail_msgs += print_msg_list("#### " + hdr, msgs, self.max_msg_count)
+
+            # the email and published reports will default to self.results_md if they are
+            # empty. in case they need to be sanitized, override them and do not append
+            # detailed messages.
+            if self.sanitize_email_results:
+                self.email_results_md = results_str
+            if self.sanitize_publish_results:
+                self.publish_results_md = results_str
+
+            # locally generated result always contains all details
+            self.results_md = results_str + fail_msgs
 
             # TODO: add support for pie / bar charts for area splits and
             # QoR history
 
-        self.results_md = results_str
         # Write results to the scratch area
         self.results_file = self.scratch_path + "/results_" + self.timestamp + ".md"
         log.info("Detailed results are available at %s", self.results_file)
