我目前正在为我的用户创建一个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");
我该怎么写?如何获取用户的密码和邮件?感谢
答案 0 :(得分:0)
您无法从用户的电子邮件地址发送。
相反,您需要从您拥有的一个地址(并使用其用户名和密码和STMP服务器)发送到您拥有的其他地址。
答案 1 :(得分:0)
smtp.gmail.com
不是公共SMTP服务器。它保留给gmail用户发送和接收邮件。
大多数SMTP服务器仅限于从其域中的用户发送邮件,并仅为其域中的用户接收邮件。简而言之,您不能使用smtp.gmail.com将邮件从joe@aol.com发送到pete@msn.com。
您可以通过以下两种方式之一解决问题:
mailto
链接。这将导致用户通过其ISP从默认邮件客户端发送邮件。这种方法的缺点是你必须通过一些箍来防止垃圾邮件。