【问题标题】:Send email from aspx page从 aspx 页面发送电子邮件
【发布时间】:2012-09-17 02:33:58
【问题描述】:

我目前正在为我的用户创建一个联系我们页面。在这里,用户可以从任何电子邮件向我发送电子邮件。

using System.Net;
using System.Net.Mail;
OpenFileDialog dlg = new OpenFileDialog();
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
    {
        string filename = dlg.FileName;

        try
        {
            MailMessage mail = new MailMessage();
            SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");

            mail.From = new MailAddress(TextBox1.Text);
            mail.To.Add("u@urdomain.com");
            mail.Subject = filename;
            mail.Body = "Report";
            Attachment attachment = new Attachment(filename);
            mail.Attachments.Add(attachment);

            SmtpServer.Port = 25;
            SmtpServer.Credentials = new System.Net.NetworkCredential("me", "password");
            SmtpServer.EnableSsl = true;

            SmtpServer.Send(mail);
        }

此电子邮件只能从 gmail 帐户接收。如何接收来自 yahoo、hotmail 等的电子邮件?对于这部分SmtpServer.Credentials = new System.Net.NetworkCredential("me", "password");我应该写什么?如何获取用户的密码和邮箱?谢谢

【问题讨论】:

    标签: c# asp.net email


    【解决方案1】:

    您不能从用户的电子邮件地址发送。

    相反,您需要从您拥有的一个地址(并使用其用户名、密码和 STMP 服务器)发送到您拥有的另一个地址。

    【讨论】:

      【解决方案2】:

      smtp.gmail.com 不是公共 SMTP 服务器。留给gmail用户收发邮件。

      大多数 SMTP 服务器都被限制为只能从其域中的用户发送邮件,并且只能从其域中的用户接收邮件。简而言之,您不能使用 smtp.gmail.com 将邮件从 joe@aol.com 发送到 pete@msn.com。

      您可以通过以下两种方式之一解决您的问题:

      1. 您的用户可以点击您页面上的mailto 链接。这将导致用户通过他们的 ISP 从他们的默认邮件客户端向您发送邮件。这种方法的缺点是您必须跳过一些环节才能防止垃圾邮件。
      2. 您可以在您的服务器上安装一个 SMTP 服务器并更改您的应用程序以使用该服务器。由于该服务器将接受来自/发往非其自己域中的电子邮件地址的电子邮件,因此您必须确保在开放的 Internet 上无法访问此 SMTP 服务器。否则,垃圾邮件发送者会将您的服务器用作开放中继。

      【讨论】:

        猜你喜欢
        • 2012-06-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-19
        • 1970-01-01
        • 2014-05-31
        • 2011-09-22
        • 1970-01-01
        相关资源
        最近更新 更多