0
對於我的silverlight項目,我創建了一個可以通過特定頁面發送的新聞郵件。在silverlight中創建新聞郵件
爲此,我有一個通訊服務,在這裏可以看到:
public bool SendMail(string emailTo, string emailFrom, string msgSubject, string msgBody)
{
bool success = false;
try
{
MailMessage msg = new MailMessage();
msg.From = new MailAddress(emailFrom);
msg.To.Add(new MailAddress(emailTo));
msg.Subject = msgSubject;
msg.Body = msgBody;
msg.IsBodyHtml = true;
SmtpClient smtp = new SmtpClient();
smtp.Host = "smtp.gmail.com"; // Replace with your servers IP address
smtp.Port = 465;
smtp.EnableSsl = false;
smtp.Send(msg);
success = true;
}
catch(Exception e)
{
success = false;
}
return success;
}
我要求服務用下面的代碼發送郵件:
public partial class Nieuwsbrief : UserControl
{
IEnumerable<Inschrijvingen> ingeschrevenen = null;
public Nieuwsbrief()
{
InschrijvingenServiceClient personclient = new InschrijvingenServiceClient();
personclient.getInschrijvingenCompleted += new EventHandler<getInschrijvingenCompletedEventArgs>(personclient_getInschrijvingenCompleted);
personclient.getInschrijvingenAsync();
InitializeComponent();
}
private void btnSubmit_Click(object sender, RoutedEventArgs e)
{
NieuwsbriefServiceClient client = new NieuwsbriefServiceClient();
//foreach (Inschrijvingen person in ingeschrevenen)
//{
client.SendMailAsync("[email protected]", "[email protected]", txtSubject.Text, txtContent.Text);
//}
client.SendMailCompleted += new EventHandler<SendMailCompletedEventArgs>(client_SendMailCompleted);
}
void personclient_getInschrijvingenCompleted(object sender, getInschrijvingenCompletedEventArgs e)
{
ingeschrevenen = e.Result;
}
void client_SendMailCompleted(object sender, SendMailCompletedEventArgs e)
{
if (e.Error != null)
txtContent.Text = "Mail has NOT send!" + e.Error.ToString();
else
MessageBox.Show(e.Result.ToString());
}
}
然而,當我按下btnSubmit
什麼也沒有發生,直到我關閉服務器,然後我得到以下錯誤:
Mail has NOT send!System.ServiceModel.CommunicationException: The remote server returned an error: NotFound. ---> System.Net.WebException: The remote server returned an error: NotFound. ---> System.Net.WebException: The remote server returned an error: NotFound.
at System.Net.Browser.ClientHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult)
at System.Net.Browser.ClientHttpWebRequest.<>c__DisplayClass5.<EndGetResponse>b__4(Object sendState)
at System.Net.Browser.AsyncHelper.<>c__DisplayClass4.<BeginOnUI>b__0(Object sendState)
--- End of inner exception stack trace ---
at System.Net.Browser.AsyncHelper.BeginOnUI(SendOrPostCallback beginMethod, Object state)
at System.Net.Browser.ClientHttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelAsyncRequest.CompleteGetResponse(IAsyncResult result)
--- End of inner exception stack trace ---
at System.ServiceModel.AsyncResult.End[TAsyncResult](IAsyncResult result)
at System.ServiceModel.Channels.ServiceChannel.EndCall(String action, Object[] outs, IAsyncResult result)
at System.ServiceModel.ClientBase`1.ChannelBase`1.EndInvoke(String methodName, Object[] args, IAsyncResult result)
at OndernemersAward.NieuwsbriefServiceReference.NieuwsbriefServiceClient.NieuwsbriefServiceClientChannel.EndSendMail(IAsyncResult result)
at OndernemersAward.NieuwsbriefServiceReference.NieuwsbriefServiceClient.OndernemersAward.NieuwsbriefServiceReference.NieuwsbriefService.EndSendMail(IAsyncResult result)
at OndernemersAward.NieuwsbriefServiceReference.NieuwsbriefServiceClient.OnEndSendMail(IAsyncResult result)
at System.ServiceModel.ClientBase`1.OnAsyncCallCompleted(IAsyncResult result)
我希望有人能幫助我, 謝謝:)
我沒有服務器,所以我只是試圖從本地運行它,我希望這不是一個問題? – Schoof
是的。那是你的問題。它會拋出一個異常,說沒有SMTP服務器。看我的編輯。 – DanTheMan
啊謝謝,有什麼辦法可以使它在localhost上工作嗎?像gmail的smtp服務器? – Schoof