0

ポート 465 で外部 smtp を使用して電子メールを送信する必要があります。 System.Net.Mail.SmtpClient は暗黙の SSL をサポートしていないため使用できないことがわかりました。 SSL を使用しない他のメール サーバー) を使用して、System.Web.Mail.SmtpMail を使用します。VS 2012 環境では正常に動作していますが、IIS 7 で実行しようとすると、「トランスポートがサーバーに接続できませんでした」というメッセージが表示されます。セキュリティ関連の問題だと思っていましたが、わかりませんでした。

私のコード:

System.Web.Mail.MailMessage myMail = new System.Web.Mail.MailMessage();
myMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserver", WebConfigurationManager.AppSettings["SmtpServer"]);
myMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserverport", WebConfigurationManager.AppSettings["SmtpPort"]);
myMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusing", "2");
myMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");
myMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", WebConfigurationManager.AppSettings["SmtpUser"]);
myMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", WebConfigurationManager.AppSettings["SmtpPw"]);
myMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpusessl", "true");
myMail.From = WebConfigurationManager.AppSettings["EmailAddress"].ToString();
myMail.To = pTo;
myMail.Subject = pSubject;
myMail.BodyFormat = pFormat;
myMail.Body = pBody;
if (pAttachmentPath.Trim() != "")
{
   MailAttachment MyAttachment = new MailAttachment(pAttachmentPath);
   myMail.Attachments.Add(MyAttachment);
   myMail.Priority = System.Web.Mail.MailPriority.Normal;
}
if (DeliveryNotificationEmail!="")
{
    myMail.Headers.Add("Disposition-Notification-To", DeliveryNotificationEmail);
}
System.Web.Mail.SmtpMail.SmtpServer = WebConfigurationManager.AppSettings["SmtpServer"] + ":" + WebConfigurationManager.AppSettings["SmtpPort"];
System.Web.Mail.SmtpMail.Send(myMail);
4

0 に答える 0