Нет необходимости жестко кодировать все настройки SMTP в вашем коде. Поместите их в web.config. Таким образом, при необходимости вы можете зашифровать эти настройки и изменить их на лету, не перекомпилировав приложение.
<configuration>
<system.net>
<mailSettings>
<smtp from="example@domain.com" deliveryMethod="Network">
<network host="smtp.gmail.com" port="587"
userName="example@domain.com" password="password"/>
</smtp>
</mailSettings>
</system.net>
</configuration>
Конец, когда вы отправляете электронную почту, просто включите SSL на вашем SmtpClient:
var message = new MailMessage("navin@php.net");
// here is an important part:
message.From = new MailAddress("example@domain.com", "Mailer");
// it's superfluous part here since from address is defined in .config file
// in my example. But since you don't use .config file, you will need it.
var client = new SmtpClient();
client.EnableSsl = true;
client.Send(message);
Убедитесь, что вы отправляете электронную почту с того же адреса электронной почты, с которым пытаетесь пройти аутентификацию в Gmail.
Примечание : Начиная с .NET 4.0, вы можете вставить enableSsl = "true" в web.config, а не устанавливать его в коде.