C#如何发送邮件?

ray*_*ran 4 .net c#

我正在使用C#.NET 4.0,并希望发送一封电子邮件到一个主题和正文的地址,正文将包含我的应用程序中的几个文本框中的一些信息.

我几乎没有使用C#发送电子邮件的经验,所以任何帮助都将不胜感激.我所知道的是你必须使用System.Net.Mail命名空间.我尝试了这段代码,但它给出了"发送邮件失败"的异常.

        new SmtpClient("smtp.server.com", 25).Send("test@hotmail.com",
                                       "test@gmail.com",
                                       "subject",
                                       "body");
Run Code Online (Sandbox Code Playgroud)

上面的代码有什么问题?此外,有没有更好的方式发送电子邮件?

Ple*_*eun 17

您的身份验证(凭据)或服务器名称/端口可能不正确.

试试这个:

        MailMessage mailMsg = new MailMessage();
        mailMsg.To.Add("test@hotmail.com");
                    // From
        MailAddress mailAddress = new MailAddress("you@hotmail.com");
        mailMsg.From = mailAddress;

        // Subject and Body
        mailMsg.Subject = "subject";
        mailMsg.Body = "body";

        // Init SmtpClient and send on port 587 in my case. (Usual=port25)
        SmtpClient smtpClient = new SmtpClient("mailserver", 587);
        System.Net.NetworkCredential credentials = 
           new System.Net.NetworkCredential("username", "password");
        smtpClient.Credentials = credentials;

        smtpClient.Send(mailMsg);
Run Code Online (Sandbox Code Playgroud)


Dav*_*ras 8

你不能留下这个字符串:

smtp.server.com

你应该有你的smtp服务器的名称,通常是mail.yourcompanyname.com或smtp.yourcompanyname.com