自动发送邮件应用

时间:2012-07-06 03:00:08

标签: c# email

我打算开发一个网站,帮助发送电子邮件到许多电子邮件地址。该站点允许用户注册帐户。用户添加他的电子邮件地址后(例如:abc @ gmail.com,abc @ xxx.com),他可以创建他想要发送的电子邮件列表。然后他点击发送,电子邮件将发送给列表中的人。

所以问题是我需要一步来配置他的电子邮件信息吗?我的意思是他可以进入smtp服务器,端口......用于他的电子邮件。例如:他使用gmail - > abc@gmail.com。他需要输入

Google Gmail接收邮件服务器(POP3) - pop.gmail.com(启用SSL,端口995)     发送邮件服务器 - 使用本地ISP提供的SMTP邮件服务器地址或smtp.gmail.com(启用TLS,端口587)

2 个答案:

答案 0 :(得分:2)

它无效。

1)许多用户不知道他们的电子邮件服务器详细信息。

2)许多邮件服务器不接受来自非域内IP的外发邮件。

答案 1 :(得分:0)

您可以在与Web服务器相同的服务器上安装/启用SMTP服务器。提供用户可以输入的页面。地址。从您的服务器发送电子邮件,但“欺骗”“来自”电子邮件ID。这样,用户无需输入其电子邮件服务器详细信息。

    public void SendEmailAsync(string id, string to, string from, string subject, string message, SendCompletedEventHandler callback)
    {
        // Command line argument must the the SMTP host.
        var client = new SmtpClient(ConfigurationManager.AppSettings["SmtpServer"]);

        if (bool.Parse(ConfigurationManager.AppSettings["PickupDirectoryFromIis"]))
        {
            client.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis;
        }


        // Specify the message content.
        var message = new MailMessage(from, to)
                          {
                              Subject = subject,
                              Body = message,
                              BodyEncoding = Encoding.UTF8,
                              SubjectEncoding = Encoding.UTF8
                          };

        client.SendCompleted += callback;
        try
        {
            client.SendAsync(message, id);
        }
        catch (SmtpException e)
        {
            this.EventLog.WriteEntry(e.ToString(), EventLogEntryType.Error);
        }
    }