2012-09-16 5 views
0

현재 내 CONTACT US 페이지를 만들고 있습니다. 여기에서 사용자는 모든 이메일에서 나에게 이메일을 보낼 수 있습니다.aspx 페이지에서 이메일 보내기

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("[email protected]"); 
      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 계정에서만받을 수 있습니다. 어떻게 야후, 핫메일, 요법에서 이메일을받을 수 있습니까? 이 부분은 SmtpServer.Credentials = new System.Net.NetworkCredential("me", "password"); 무엇을 써야하나요? 사용자의 비밀번호와 메일을받는 방법은 무엇입니까? 감사합니다

답변

0

사용자의 이메일 주소로 보낼 수 없습니다.

대신, 당신은 당신이 소유 한 주소에서 전송 (및 사용자 이름 & 비밀번호 & STMP 서버를 사용) 소유 한 다른 주소로 할 필요가있다.

0

smtp.gmail.com은 (는) 공용 SMTP 서버가 아닙니다. Gmail 사용자가 메일을 보내고받을 수 있도록 예약되어 있습니다.

대부분의 SMTP 서버는 도메인의 사용자 만 메일을 보내고 도메인의 사용자 만 메일을받을 수 있도록 제한됩니다. 즉, smtp.gmail.com을 사용하여 [email protected]에서 [email protected]으로 메일을 보낼 수 없습니다.

두 가지 방법 중 하나를 사용하여 문제를 해결할 수 있습니다

  1. 사용자가 페이지에 mailto 링크를 클릭 할 수 있습니다. 그러면 사용자가 ISP를 통해 기본 메일 클라이언트에서 메일을 보내는 경우가 발생합니다. 이 접근법의 단점은 스팸을 방지하기 위해 몇 가지 조치를해야한다는 것입니다.
  2. 서버에 SMTP 서버를 설치하고 해당 서버를 사용하도록 응용 프로그램을 변경할 수 있습니다. 해당 서버는 자체 도메인이 아닌 다른 도메인의 전자 메일 주소와의 전자 메일을 수락하므로 열려있는 인터넷에서이 SMTP 서버에 액세스 할 수 없도록해야합니다. 그렇지 않으면 스패머가 서버를 오픈 릴레이로 사용합니다.