【问题标题】:C# how to send email?C#如何发送电子邮件?
【发布时间】:2011-02-17 12:09:01
【问题描述】:

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

我几乎没有使用 C# 发送电子邮件的经验,因此我们将不胜感激。我所知道的是您必须使用 System.Net.Mail 命名空间。我尝试了这段代码,但它给出了“发送邮件失败”异常。

        new SmtpClient("smtp.server.com", 25).Send("test@hotmail.com",
                                       "test@gmail.com",
                                       "subject",
                                       "body");

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

【问题讨论】:

  • Stackoverflow 和 Internet 上有 3422352232341 个关于在 ASP.NET 中发送邮件的示例...

标签: c# .net


【解决方案1】:

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

试试这个:

        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);

【讨论】:

    【解决方案2】:

    你不能离开这个字符串:

    smtp.server.com

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

    【讨论】:

    • 嗯.. 我不知道 SMTP 服务器是什么。我应该如何弄清楚我的端口是什么,以及我实际拥有的端口是什么?
    • 如果您在公司内部,请询问网络管理员您是否在私人办公室检查您的互联网提供商的参数,如果您没有发现任何内容,请创建一个 gmail 帐户并在 gmail 网站上查看如何启用、使用并使用 GMail 配置 smpt 和 pop3。
    • 我已经想通了。不过还是感谢您的帮助。
    【解决方案3】:

    smtp.server.com 真的是 SMTP 服务器吗?您需要将其替换为真实的。您的 ISP 可能会为您提供一个,但它可能只会转发来自您的 ISP 拥有的地址的电子邮件。

    【讨论】:

      【解决方案4】:

      我曾与三个知名 ISP 合作托管我客户的网站。所有三个 ISP 都指示我使用“localhost”作为 smtp 服务器名称。

      【讨论】:

      • localhost 仅在邮件服务器位于您自己的服务器上时才有效。如果您使用的是 gmail(或例如 Planet internet),则情况并非如此。您确实需要电子邮件提供商的邮件服务器(例如 mail.planet.nl)
      【解决方案5】:

      添加这个:

      SmtpServer.EnableSsl = true;
      

      【讨论】:

      • 这与这里提出的问题无关。
      猜你喜欢
      • 2012-05-17
      • 1970-01-01
      • 2016-04-17
      • 2012-07-27
      • 2018-07-24
      • 2020-05-23
      • 2013-06-18
      • 1970-01-01
      相关资源
      最近更新 更多