2016-04-03 58 views
0

我編寫了一個簡單的Windows應用程序,用於向我的郵件列表的成員發送一些電子郵件。C#SMTP電子郵件程序未正確使用FROM地址

該程序使用我的Gmail帳戶通過SMTP發送。我不希望我的客戶擁有該帳戶,但我希望他們看到公司電子郵件。

我寄給自己一些電子郵件來測試,但我收到的電子郵件顯示從我登錄在谷歌的電子郵件帳戶發送。有任何想法嗎?

郵件功能:

public void SendEmail() 
    { 
     //smtp host and port for gmail 
     string host = txtHost.Text; 
     int port; 
     if (!Int32.TryParse(txtPort.Text, out port)) 
     { 
      MessageBox.Show("Please enter a valid port number."); 
      return; 
     }   

     //compose email 
     MailMessage msg = new MailMessage(); 
     msg.Sender = new MailAddress(txtFrom.Text, txtFrom.Text); 
     msg.From = new MailAddress(txtFrom.Text, txtFrom.Text); 

     msg.To.Add(txtTo.Text); 

     msg.Subject = txtSubject.Text; 
     msg.Body = rTxtMessage.Text; 

     msg.IsBodyHtml = chkHtml.Checked; 


     //msg.From = new MailAddress(txtFrom.Text, txtFrom.Text); 

     //create smtp client 
     SmtpClient smtp = new SmtpClient(host, port); 

     //TODO: Move constants to the NetworkCredentials call 
     string username = SMTP_USERNAME; 
     string password = SMTP_PASSWORD; 

     smtp.UseDefaultCredentials = false; 
     smtp.Credentials = new NetworkCredential(username, password); 
     smtp.EnableSsl = true; 

     try 
     { 
      //Send email 
      smtp.Send(msg); 
     } 
     catch (Exception exp) 
     { 
      //Log if any errors occur 
      MessageBox.Show(exp.Message); 
     } 
    } 

和應用程序和結果的截圖: Application running What came to my inbox

回答

0

您應該設置:

msg.Sender 

到您的公司地址。

+0

這似乎是正確的,但VS告訴我,我做到這一點是不可編譯的。 –

+0

msg.Sender = txtFrom.Text; –

+0

我已經做了這個改變,仍然不起作用。我將更改問題以包含更新的代碼塊並添加結果和應用程序的圖像 –