A enviar o correio com o SmtpClient in.net

não consigo enviar o correio usando o cliente smtp. aqui está o código:

SmtpClient client=new SmtpClient("Host");
client.Credentials=new NetworkCredential("username", "password");
MailMessage mailMessage = new MailMessage();
mailMessage.from="[email protected]";
mailMessage.To.Add("[email protected]");
mailMessage.body="body";
mailMessage.subject="subject";
client.Send(mailMessage);

o problema é que quando uso este código em ASP.NET aplicação, não recebo nenhum e-mail. Quando em asp.net eu mudo o endereço de E-mail para o nome de usuário dado no NetworkCredential, eu recebo e-mails.

mas na aplicação C# windows, posso receber e-mails, mesmo que o endereço de E-mail do remetente não seja válido.

Author: John Saunders, 2010-03-18

4 answers

Descobri que a configuração da propriedade de credenciais SmtpClient antes de definir os 'UseDefaultCredentials = false' UseDefaultCredentials = false faz com que as credenciais sejam ignoradas.

Falha:

SmtpClient smtp = new SmtpClient;
smtp.Credentials = new NetworkCredential("user","pass");
smtp.UseDefaultCredentials = false;

Funciona:

SmtpClient smtp = new SmtpClient;
smtp.UseDefaultCredentials = false;
smtp.Credentials = new NetworkCredential("user","pass");
Vá-se lá saber.
 11
Author: user3524983, 2018-05-11 18:02:38
Significa que o seu servidor de E-mail não permite o retransmissor de E-mail. O seu servidor de E-mail só lhe permite enviar correio a partir do ID de E-mail autenticado como nome de utilizador. Geralmente isso é feito para evitar que os e-mails sejam enviados como identidades diferentes que não o autenticado.
 1
Author: this. __curious_geek, 2013-10-22 15:03:55

Tenta isto:

MailMessage mail = new MailMessage("emailfrom","emailto");

mail.From = new MailAddress("emailfrom");
mail.Subject = txtsbjct.Text;
string Body = txtmsg.Text;
mail.Body = Body;

mail.IsBodyHtml = true;
SmtpClient smtp = new SmtpClient();
smtp.Host = "smtp.gmail.com"; //Or Your SMTP Server Address
smtp.Credentials = new System.Net.NetworkCredential("youremail", "yourpassword");

smtp.EnableSsl = true;
smtp.Send(mail);
txtemail.Text = "";
txtmsg.Text = "";
txtsbjct.Text = "";
Label1.Text = "your email has been send";
mail = null;
smtp = null;
 0
Author: colonel, 2012-12-15 07:53:07
void sendEmail(string strFrom
                        , string strTo
                        , string strSubject
                        , string strBody)
   {

       MailMessage objMailMessage = new MailMessage();
       System.Net.NetworkCredential objSMTPUserInfo =
           new System.Net.NetworkCredential();
       SmtpClient objSmtpClient = new SmtpClient();

       try
       {
           objMailMessage.From = new MailAddress(strFrom);
           objMailMessage.To.Add(new MailAddress(strTo));
           objMailMessage.Subject = strSubject;
           objMailMessage.Body = strBody;

           objSmtpClient = new SmtpClient("172.0.0.1"); /// Server IP
           objSMTPUserInfo = new System.Net.NetworkCredential
           ("User name", "Password","Domain");
           objSmtpClient.Credentials = objSMTPUserInfo;
           objSmtpClient.UseDefaultCredentials = false;
           objSmtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;

           objSmtpClient.Send(objMailMessage);
       }
       catch (Exception ex)
       { throw ex; }

       finally
       {
           objMailMessage = null;
           objSMTPUserInfo = null;
           objSmtpClient = null;
       }
   }
 -4
Author: Ashish, 2015-09-17 05:19:48