Blob Blame History Raw
--- comm/mailnews/compose/src/nsMsgCompUtils.cpp	2021-03-01 21:18:23.000000000 +0300
+++ comm/mailnews/compose/src/nsMsgCompUtils.cpp-OK	2021-03-10 16:50:06.512246623 +0300
@@ -357,18 +357,31 @@ nsresult mime_generate_headers(nsIMsgCom
 
     finalHeaders->SetRawHeader(HEADER_X_MOZILLA_DRAFT_INFO, draftInfo, nullptr);
   }
 
   nsCOMPtr<nsIHttpProtocolHandler> pHTTPHandler = do_GetService(NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "http", &rv);
   if (NS_SUCCEEDED(rv) && pHTTPHandler)
   {
     nsAutoCString userAgentString;
-    // Ignore error since we're testing the return value.
-    mozilla::Unused << pHTTPHandler->GetUserAgent(userAgentString);
+
+    // allow a user to override the default UA
+    // an empty string value drops UA header
+
+    nsCString userAgentOverride;
+    rv = prefs->GetCharPref("mailnews.useragent.override", userAgentOverride);
+
+    if (NS_SUCCEEDED(rv))
+      userAgentString = userAgentOverride;
+    else {
+      // Ignore error since we're testing the return value.
+      mozilla::Unused << pHTTPHandler->GetUserAgent(userAgentString);
+      // Properly advertise compatibility (if any).
+      userAgentString.ReplaceSubstring("Firefox", "Thunderbird");
+    }
 
     if (!userAgentString.IsEmpty())
       finalHeaders->SetUnstructuredHeader("User-Agent",
         NS_ConvertUTF8toUTF16(userAgentString));
   }
 
   finalHeaders->SetUnstructuredHeader("MIME-Version", NS_LITERAL_STRING("1.0"));