【问题标题】:what user info do I need to send an email from his mail server我需要什么用户信息才能从他的邮件服务器发送电子邮件
【发布时间】:2011-12-14 15:10:39
【问题描述】:

我正在构建一个应用程序,用户在其中创建电子邮件,电子邮件从他的邮件服务器发送。我不希望收到任何电子邮件,只是发送它们。我需要访问他的邮件服务器来执行此操作,我想知道 a) 那里有什么样的电子邮件服务器(Exchange、SMTP、POP3 ......)以及用户需要向我提供什么样的信息(即什么我需要数据库中的字段)。

如果您知道要避免的任何陷阱,请告诉我。

感谢您的建议。

【问题讨论】:

    标签: asp.net email


    【解决方案1】:

    SMTP 和 POP3 是协议,而不是电子邮件服务器。

    如果我理解正确,您需要根据构建电子邮件的客户端连接到不同的电子邮件服务器,以通过他/她的邮件服务器发送电子邮件(?)

    如果是这样,您需要为您的每个客户找出他们的邮件服务器的 IP 地址以及他们支持的身份验证、加密等类型。建立后,您需要使用客户端提供的特定凭据连接到每个服务器,并通过他们的 SMTP 服务器发送电子邮件。示例:

    // Create a message and set up the recipients.
    MailMessage message = new MailMessage(
       "jane@contoso.com",
       "ben@contoso.com",
       "Quarterly data report.",
       "Hello, test email!.");
    
    
    //Send the message.
    SmtpClient client = new SmtpClient(server);
    // Add credentials if the SMTP server requires them.
                // YOU NEED TO CHANGE THIS PART DEPENDING ON THE SPECIFICS OF THE
                //SMTP SERVER THAT YOU WILL BE USING
    client.Credentials = CredentialCache.DefaultNetworkCredentials;
    
    try {
      client.Send(message);
    }
    catch (Exception ex) {
      Console.WriteLine("Exception caught in CreateMessageWithAttachment(): {0}", 
            ex.ToString() );              
    }
    

    上面的例子几乎是逐字记录的,from here.

    【讨论】:

    • 我对使 smtpclient 对象为每个可能的用户工作所需的内容感兴趣。
    • @frenchie 这个问题太笼统了。您是否意识到您将要求每个用户在发送电子邮件之前提供用户名、密码、使用的加密、端口号等?如果你这样做了,我提供的示例代码应该足以让你入门。 SmtpClient 对象支持多种身份验证机制。阅读 MSDN 上的文档。
    • 是的,我要求用户提供“所有这些”;我想知道“所有这些”的领域是什么?我计划存储这些信息并让应用程序的用户能够从他们的电子邮件服务器发送电子邮件。
    • @frenchie 询问他们:用户名、密码、smtp 服务器的 IP 地址以及是否需要 ssl(是或否)和端口号。这应该涵盖您的大多数情况;如果不是全部。
    【解决方案2】:

    发送电子邮件很容易,如何存储和管理这取决于您:

    Sending Email in ASP.NET 2.0

    web.config:

      <system.net>
        <mailSettings>
          <smtp>
            <network 
                 host="relayServerHostname" 
                 port="portNumber"
                 userName="username"
                 password="password" />
          </smtp>
        </mailSettings>
      </system.net>
    

    代码:

    MailMessage mail = new MailMessage(from, to, subject, message);
    mail.IsBodyHtml = true;
    SmtpClient client = new SmtpClient(); //used config settings
    client.Send(mail);
    

    【讨论】:

    • 我需要一个动态版本:用户将从他们的服务器发送电子邮件。因此,这些值不能在 web.config 文件中,而是必须在运行时根据用户提供的有关其邮件服务器的信息来确定
    猜你喜欢
    • 2011-11-11
    • 1970-01-01
    • 2016-01-01
    • 1970-01-01
    • 2021-09-13
    • 2017-01-01
    • 2019-02-28
    • 2010-09-28
    • 2015-11-08
    相关资源
    最近更新 更多