send email in c#

前端 未结 6 1582
猫巷女王i
猫巷女王i 2021-01-28 04:56

i\'ve tried to send email using this code..but an error occurred in smtp.Send(mail); messaging \"Failure sending mail\"

  MailMessage mail = ne         


        
6条回答
  •  情话喂你
    2021-01-28 05:48

    You need to set smtp.EnableSsl = true for gmail.

    Take a look at this class, it should work for you:

    public class Email
    {
        NetworkCredential credentials;
        MailAddress sender;
    
        public Email(NetworkCredential credentials, MailAddress sender)
        {
            this.credentials = credentials;
            this.sender = sender;
        }
    
        public bool EnableSsl
        {
            get { return _EnableSsl; }
            set { _EnableSsl = value; }
        }
        bool _EnableSsl = true;
    
        public string Host
        {
            get { return _Host; }
            set { _Host = value; }
        }
        string _Host = "smtp.gmail.com";
    
        public int Port
        {
            get { return _Port; }
            set { _Port = value; }
        }
        int _Port = 587;
    
        public void Send(MailAddress recipient, string subject, string body, Action action, params FileInfo[] attachments)
        {
            SmtpClient smtpClient = new SmtpClient();
    
            // setup up the host, increase the timeout to 5 minutes
            smtpClient.Host = Host;
            smtpClient.Port = Port;
            smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
            smtpClient.UseDefaultCredentials = false;
            smtpClient.Credentials = credentials;
            smtpClient.Timeout = (60 * 5 * 1000);
            smtpClient.EnableSsl = EnableSsl;
    
            using (var message = new MailMessage(sender, recipient)
            {
                Subject = subject,
                Body = body
            })
            {
                foreach (var file in attachments)
                    if (file.Exists)
                        message.Attachments.Add(new Attachment(file.FullName));
                if(null != action)
                    action(message);
                smtpClient.Send(message);
            }
        }
    }
    

提交回复
热议问题