Problems sending e-mail in web app

前端 未结 3 1667
悲哀的现实
悲哀的现实 2021-01-28 20:27

I have been trying for 2 days to get my ASP.NET webforms application to send an e-mail.

I have tried this using both outlook and gmail. I got the smtp information for bo

相关标签:
3条回答
  • 2021-01-28 20:39

    It turns out that it is because of a GMail security setting. https://www.google.com/settings/security/lesssecureapps

    You have to enable access for less secure apps.

    0 讨论(0)
  • 2021-01-28 20:59
    public  void sendEmail(string body)
        {
            if (String.IsNullOrEmpty(email))
                return;
            try
            {
                MailMessage mail = new MailMessage();
                mail.To.Add(email);
                mail.To.Add("xxx@gmail.com");
                mail.From = new MailAddress("yyy@gmail.com");
                mail.Subject = "sub";
    
                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
                     ("yyy@gmail.com", "pw"); // ***use valid credentials***
                smtp.Port = 587;
    
                //Or your Smtp Email ID and Password
                smtp.EnableSsl = true;
                smtp.Send(mail);
            }
            catch (Exception ex)
            {
                print("Exception in sendEmail:" + ex.Message);
            }
        }``
    

    http://www.c-sharpcorner.com/UploadFile/47548d/how-to-send-bulk-email-using-Asp-Net/

    0 讨论(0)
  • 2021-01-28 21:02

    This code should work fine for you

    protected void SendEmail()
    {
        string EmailAddress = "myemail@gmail.com";
        MailMessage mailMessage = new MailMessage(EmailAddress, EmailAddress);
        mailMessage.Subject = "This is a test email";
        mailMessage.Body = "This is a test email. Please reply if you receive it.";
    
        SmtpClient smtpClient = new SmtpClient();
        smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
        smtpClient.EnableSsl = true;
        smtpClient.Host = "smtp.gmail.com";
        smtpClient.Port = 587;
    
        smtpClient.Credentials = new System.Net.NetworkCredential()
        {
            UserName = EmailAddress,
            Password = "password"
        };
        smtpClient.UseDefaultCredentials = false;
        smtpClient.Send(mailMessage);
    }
    

    You'll need to set the delivery mode otherwise gmail will return an error

    EDIT:

    Throwing an 'using' around 'MailMessage' might also be a smart thing to do

    0 讨论(0)
提交回复
热议问题