【问题标题】:creating smtp server and read the emails c#创建 smtp 服务器并阅读电子邮件 c#
【发布时间】:2015-04-22 11:52:41
【问题描述】:

我的任务是创建一个可以使用 C# 接收邮件的新 smtp 邮件服务器。

在浏览我阅读的文章时,我们可以通过 SMTP 发送电子邮件,但我们必须使用 POP 接收或阅读。

我被一些 stackoverflow 已经存在的问题引导到链接: Rnwoodsourceforge

Rnwood 很抱歉,我不明白如何使用它。 source forge 如果我们运行 msi 要求下载它,它会要求下载框架 1.1.4322,它不会安装在我的系统中并抛出错误。

通常有发送消息的代码所以我尝试了msdn example 我使用 localhost 作为服务器,使用 587 作为端口。 这给了我错误(对于任何端口 587,25) 我还发现了一篇文章here,当我尝试运行 msdn 代码时,它实际上监控了 localhost 和指定的端口。

但我仍然无法以任何方式发送电子邮件进行测试。

那么有什么方法可以让我在自己的服务器中设置 smtp 并接收电子邮件并进行测试。

【问题讨论】:

    标签: c# asp.net .net email smtp


    【解决方案1】:

    设置和配置邮件服务器与仅从现有 IMAP / POP3 服务器发送或阅读电子邮件完全不同。

    邮件服务器由许多组件组成,例如:

    • 一个邮件传输代理 (MTA),它处理 SMTP 流量并负责从您的用户向外部 MTA 发送电子邮件并接收来自外部 MTA 的电子邮件。

    • 从 MTA 检索邮件并将其放入收件人邮箱的邮件传递代理。

    • 具有适当 DNS 记录和 SSL 证书的域名。

    • 提供 IMAP / POP3 功能的服务器。

    简而言之...坚持使用公开可用的邮件服务器...


    在您的帖子中,您从 .NET 框架中引用了 SmtpClient。该库用于连接到现有的邮件服务器。你可以这样使用它。

    MailMessage message = new MailMessage();
    message.From = new MailAddress("your.email.address@example.com", "Your name");
    
    MailAddress recipientsMailAddress = new MailAddress("the.recipients.email@example.com");
    message.To.Add(recipientsMailAddress);
    message.Subject = "The subject of your email";
    message.Body = "The body / content of your email";
    message.IsBodyHtml = false; // You can set this to true if the body of your email contains HTML
    
    SmtpClient smtpClient = new SmtpClient
    {
        Credentials = new NetworkCredential("Your username/email", "Your password"),
        EnableSsl = true, // Will be required by most mail servers
        Host = "The host name of the mail server", // 
        Port = 465 // The port number of the mail server
    };
    
    smtpClient.Send(message);
    

    如果您有 Gmail 帐户,则可以在您的 C# 应用程序中使用他们的 SMTP 服务器,只需使用这些设置即可。

    Hostname: smtp.gmail.com
    Port: 587
    Username: your_email@gmail.com
    Password: ********
    RequireSSL: true
    

    【讨论】:

    • 第二部分坚持公开可用的邮件服务器...我在处理各种 smtp 主题时已经实现了...但感谢您澄清差异...
    【解决方案2】:

    看看SmtpListener,我认为它可以满足您的需求。 它不是一个标准的电子邮件服务器,它将通过SMTP 接收新电子邮件,将它们存储在磁盘上并允许您使用POP 检索它们。

    SmtpListener 将创建一个SMTP 服务器,该服务器将接收电子邮件并允许您通过代码对任何新电子邮件作出反应。

    但是,请注意,您必须在生产环境中像真正的SMTP 服务器一样配置它,包括MX DNS 条目。

    【讨论】:

    • 在生产环境中像真正的 SMTP 服务器一样配置它,这是否意味着在 IIS 中配置 SMTP?我们按照technet.microsoft.com/en-us/library/… 设置MX DNS
    • 不,它本身就是一个完整的服务器,您不必使用 IIS。但是,我建议您将其托管在 Windows 服务中。
    猜你喜欢
    • 1970-01-01
    • 2018-10-17
    • 1970-01-01
    • 2013-07-09
    • 1970-01-01
    • 2016-12-18
    • 1970-01-01
    • 2013-02-15
    • 1970-01-01
    相关资源
    最近更新 更多