次のコードを使用してメールを送信します。
public static bool SendEmail(string To, string ToName, string From, string FromName, string Subject, string Body, bool IsBodyHTML)
{
try
{
MailAddress FromAddr = new MailAddress(From, FromName, System.Text.Encoding.UTF8);
MailAddress ToAddr = new MailAddress(To, ToName, System.Text.Encoding.UTF8);
var smtp = new SmtpClient
{
Host = "smtp.datagts.net",
Port = 587,
EnableSsl = false,
DeliveryMethod = SmtpDeliveryMethod.Network,
UseDefaultCredentials = true,
Credentials = new System.Net.NetworkCredential("MeEmail@...", "Password")
};
using (MailMessage message = new MailMessage(FromAddr, ToAddr)
{
Subject = Subject,
Body = Body,
IsBodyHtml = IsBodyHTML,
BodyEncoding = System.Text.Encoding.UTF8,
})
{
smtp.Send(message);
}
return true;
}
catch
{
return false;
}
}
ローカルで動作し、ローカル IIS で Web サイトを使用すると動作しますが、Web サイトにアップロードすると動作せず、エラーが発生しても電子メールが送信されません。
これについて私を助けてくれる人はいますか?
UPDATE1 : try catch を削除し、次のメッセージでエラーをキャッチします。Failure sending mail
更新 2: stmpサーバーを変更し、Gmail アカウントを使用します。次のコードを見てください。
public static bool SendEmail(string To, string ToName, string From, string FromName, string Subject, string Body, bool IsBodyHTML)
{
try
{
MailAddress FromAddr = new MailAddress(From, FromName, System.Text.Encoding.UTF8);
MailAddress ToAddr = new MailAddress(To, ToName, System.Text.Encoding.UTF8);
var smtp = new SmtpClient
{
Host = "smtp.gmail.com",
Port = 587,
EnableSsl = true,
DeliveryMethod = SmtpDeliveryMethod.Network,
UseDefaultCredentials = false,
Credentials = new System.Net.NetworkCredential("MeEmail@gmail.com", "Password")
};
using (MailMessage message = new MailMessage(FromAddr, ToAddr)
{
Subject = Subject,
Body = Body,
IsBodyHtml = IsBodyHTML,
BodyEncoding = System.Text.Encoding.UTF8,
})
{
smtp.Send(message);
}
return true;
}
catch
{
return false;
}
}
そして今、私はまだエラーが発生します:(
このリンクに記載されている「MustIssueStartTlsFirst」エラーが発生します。@EdFS ポイントを確認して、ポート 25 を使用しようとしています。
UPDATE3:共有サーバーを使用しているためです。ポートを 25 に変更するだけで、スチールが機能せず、同じエラーが発生します。サーバーバックアップチームからサポートを受けようとしています