На самом деле
SmtpMail.SmtpServer.Insert(0, "");
ничего не делает.
SmtpServer
свойство имеет тип String, поэтому вы в основном вызываете string.Insert (int, string), который не влияет на строку, для которой вы вызываете insert, но возвращает новый экземпляр строки с тем, что вы пытаетесь вставить.
SmtpMail.SmtpServer = "google.com";
SmtpMail.SmtpServer = SmtpMail.SmtpServer.Insert(0, "mail.");
// now SmtpMail.SmtpServer will be "mail.google.com"