从aspx页面发送电子邮件

时间:2012-09-16 18:17:02

标签: c# asp.net email

我目前正在为我的用户创建一个CONTACT US页面。在这里,用户可以通过任何电子邮件向我发送电子邮件

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帐户收到。如何接收来自雅虎,hotmail等的电子邮件?对于这部分SmtpServer.Credentials = new System.Net.NetworkCredential("me", "password");我该怎么写?如何获取用户的密码和邮件?感谢

2 个答案:

答案 0 :(得分:0)

您无法从用户的电子邮件地址发送。

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

答案 1 :(得分:0)

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

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

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

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