繁体   English   中英

从aspx页面发送电子邮件

[英]Send email from aspx page

我目前正在为我的用户创建一个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帐户收到此电子邮件。 如何接收来自Yahoo,Hotmail等的电子邮件? 对于此部分, SmtpServer.Credentials = new System.Net.NetworkCredential("me", "password"); 我应该写什么? 如何获取用户的密码和邮件? 谢谢

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM