ENVIAR EMAIL

FABRICIOWEB 10/03/2025 10:40:15
#504862
se for gmail ja expliquei acima como se faz
PROSOFTSISTEMAS 18/04/2025 11:53:36
#504916
Uso o Gmail e funciona bem direitinho.....
Mas pra isso vc precisa ativar a verificação em duas etapas no gmail
Usar a senha gerada na verificação em duas etapas....
(Se não souber fazer a verificação em duas etapas, fala aí que te oriento)

Segue aqui o código fonte que uso escrito em c#

public string EnviarEmail() {
SmtpClient Smtp = new SmtpClient();
MailMessage Mail = new MailMessage();
try{
Cursor.Current = Cursors.WaitCursor;
System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12;
Smtp.Credentials = new NetworkCredential(EmailEmissor, SenhaEmissor); //Senha emissor gerada pelo gmail va verificação duas etapas
Smtp.Port = Porta; //Para gmail uso 587
Smtp.Host = SMTP; //Para gmail uso smtp.gmail.com
Smtp.Timeout = 300000;

Smtp.EnableSsl = true;

Mail.From = new MailAddress(EmailEmissor);
Mail.To.Add(ListMail[0]); //Um list contendo a lista de emails dos destinatários (aqui uso o destinatárioprincipal)
Mail.Subject = Assunto.Trim(); //Assunto do email
Mail.Body = MsgMail.Trim(); //Mensagem do email
for (int I = 1; I < ListMail.Count; I++){
Mail.CC.Add(new MailAddress(ListMail[I])); //Lista de todos os destinatários que vão receber o email
}
//Essa parte é para o caso de querer colocar uma logo e assinatura no email
if (Usr.LogoAssina != null || Usr.TxtAssina != ""){
LinkedResource logo = null;
string htmlview = "<html>"
+ "<body>"
+ "<table border=0>"
+ "<tr width=100%>";
if (Usr.LogoAssina != null){
string NomeArq = Path.Combine(Path.GetTempPath(), "LogoAssina.jpg");
Usr.LogoAssina.Save(NomeArq);
logo = new LinkedResource(NomeArq);
logo.ContentId = "logo";

htmlview += "<td>"
+ "<img src=cid:logo alt=" + Usr.Fantasia + "/>"
+ "</td>";
}
// Usr.TxtAssina = "ProSoft Informática
Santa Maria - RS
Gratos pela Preferência
outro teste
e mais outro
E outro";
if (Usr.TxtAssina != "")
htmlview += "<td><b>" + Usr.TxtAssina.Replace("
", "<br>").Replace("
", "<br>").Replace("
", "<br>") + "</b></td>";

htmlview += "</tr>"
+ "</table>"
+ "<hr/>"
+ "</body>"
+ "</html>";
AlternateView AlterView = AlternateView.CreateAlternateViewFromString(MsgMail + htmlview, null, MediaTypeNames.Text.Html);
if (logo != null) AlterView.LinkedResources.Add(logo);
Mail.AlternateViews.Add(AlterView);
}
if (Confirmar)
Mail.Headers.Add("Disposition-Notification-To", Usr.EmailEmissor);

foreach (string Arq in Anexos){
if (File.Exists(Arq))
Mail.Attachments.Add(new Attachment(Arq));
else{
string St = "O anexo " + Arq + " não foi localizado. Isso fará com que o mesmo não seja enviado no email.

Prosseguir com a operação?";
if (MessageBox.Show(St, "Envio de Email", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) return "";
}
}

Smtp.Send(Mail);
Cursor.Current = Cursors.Default;
MessageBox.Show("Email enviado com sucesso!!!!!!!!!", "Envio de Email", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
PDataEnvEmail = DateTime.Now.ToString();
} catch (Exception Ex) {
MessageBox.Show(Ex.Message, "Envio de Email", MessageBoxButtons.OK, MessageBoxIcon.Error);
PDataEnvEmail = "";
}
finally {
if (Mail.Attachments.Count > 0) {
Mail.Attachments.Clear();
Mail.Attachments.Dispose();
}
Smtp?.Dispose();
Mail?.Dispose();
}

return DataEnvEmail;
}
Página 2 de 2 [12 registro(s)]
Faça seu login para responder