1
string smtpServer = "mail.occtbangalore.org";
string smtpAuthentication = (string)Globals.HostSettings["SMTPAuthentication"];
string smtpUsername = (string)Globals.HostSettings["SMTPUsername"]; 
string smtpPassword = (string)Globals.HostSettings["SMTPPassword"];

MailMessage mail = new MailMessage();

mail.From = new MailAddress("info@myhost.c);
mail.To.Add(txtEmail.Text.Trim());
mail.Subject = "OCCT BANGALORE";
string html = "<img src=\"cid:Logo\" />";
AlternateView av2 = AlternateView.CreateAlternateViewFromString(html,null,text/html");   
string logoFile = MapPath(PortalSettings.HomeDirectory + PortalSettings.LogoFile);
if (File.Exists(logoFile))
{
     LinkedResource linkedResource = new LinkedResource(logoFile);
     linkedResource.ContentId = "Logo";
     linkedResource.ContentType.Name = logoFile;
     linkedResource.ContentType.MediaType = "image/jpeg";
     av2.LinkedResources.Add(linkedResource);
}
mail.AlternateViews.Add(av2);
SmtpClient emailClient = new SmtpClient(smtpServer);
if (smtpAuthentication == "1")
{
    NetworkCredential SMTPUserInfo = new NetworkCredential(smtpUsername,smtpPassword);    
    emailClient.UseDefaultCredentials = false;
    emailClient.Credentials = SMTPUserInfo;
}
emailClient.Send(mail);

このコードを実行すると、次のエラーが発生します。

SMTP サーバーが安全な接続を必要とするか、クライアントが認証されませんでした。サーバーの応答は次のとおりです。SMTP 認証が必要です。

どこで間違ったのですか?

4

2 に答える 2

1

dotnetnuke タグを使用しているようです。dotnetnuke.service.mail を使用しないのはなぜですか?

これは、メールを送信するための dontnetuke アセンブリです。

[ホスト設定] タブの [詳細設定] で、使用する SMTP サーバーを追加できます。

次に、次のクラスを使用するだけです。

 SendEmail(string fromAddress, string senderAddress, string toAddress, string subject, string body, List<System.Net.Mail.Attachment> attachments);
于 2013-09-20T10:34:12.490 に答える