por Cesar Cassiano Schimanco

Enviando e-mail em C# usando gmail (formulário de contato)

Essa é uma dica para quem não possui um servidor SMTP para o envio dos e-mails, e precisa implementar um formulário em sua página de contato.
Abaixo um formulário simples de e-mail em ASP.NET/C# usando uma conta do gmail.

contato.aspx

<div>
	<table>
		<tr>
			<td>
				Nome:
			</td>
			<td>
				<asp:TextBox ID="txtName" runat="server" />
			</td>
		</tr>
		<tr>
			<td>
				e-mail:
			</td>
			<td>
				<asp:TextBox ID="txtEmail" runat="server" />
			</td>
		</tr>
		<tr>
			<td colspan="2">
				Mensagem:<br />
				<asp:TextBox ID="txtMessage" runat="server" 
				TextMode="MultiLine" Height="180px" />
			</td>
		</tr>
	</table>
</div>
<div>
	<asp:Button ID="btnSend" runat="server" 
	Text="Enviar" onclick="btnSend_Click" />
</div>

contato.aspx.cs

using System.Net.Mail;

protected void btnSend_Click(object sender, EventArgs e)
{
	string sUserName = "email@gmail.com"; //Login
	string sPassword = "senha"; //Senha
	string sBody = "Mensagem:\n\n" +
					 "Nome: " + txtName.Text + "\n" +
					 "email: " + txtEmail.Text + "\n" +
					 "Mensagem: " + txtMessage.Text + "\n\n";

	MailMessage objEmail = new MailMessage();
	objEmail.To.Add(sUserName);
	objEmail.From = new MailAddress(txtEmail.Text.Trim());
	objEmail.Subject = "Título da mensagem";
	objEmail.Body = sBody;

	SmtpClient smtp = new SmtpClient();
	smtp.Host = "smtp.gmail.com"; //Servidor 
	smtp.Credentials = new System.Net.NetworkCredential(sUserName, sPassword);
	smtp.EnableSsl = true;
	smtp.Send(objEmail);

	//Redireciona para a página que mostra a mensagem: "e-mail foi enviado".
	Response.Redirect(Request.Url.AbsolutePath + "?acao=enviado");
} 


 

Comentários

Carregando comentários

Postar um novo comentário



Processando...