我想通過 C# 發送一封帶有附件的電子郵件,我嘗試使用以下已編譯的代碼,但是一旦我啟動程式,我就會收到螢屏截圖中報告的內容并且電子郵件沒有發送,有人可以幫助我嗎?
using System.Net;
using System.Net.Mail;
static void email_send()
{
MailMessage mail = new MailMessage();
SmtpClient SmtpServer = new SmtpClient("smtpservername");
mail.From = new MailAddress("sendingemail");
mail.To.Add("emailrecipients");
mail.Subject = "Test email";
mail.Body = "mail with attachment";
System.Net.Mail.Attachment attachment;
attachment = new System.Net.Mail.Attachment("D:/attachment.txt");
mail.Attachments.Add(attachment);
SmtpServer.Port = 25;
SmtpServer.Credentials = new System.Net.NetworkCredential("sendingemail", "sendingemailpassword");
SmtpServer.EnableSsl = false;
SmtpServer.Send(mail);
}
email_send();

uj5u.com熱心網友回復:
根據有關如何創建附件的檔案,您只需將字串“D:/attachment.txt”附加到電子郵件而不是檔案本身。
為了將檔案作為附件發送,您希望對附件使用Attachment(Stream stream, string?name)建構式。
在您嘗試發送附件之前,您是否驗證了您設定的憑據和 SMTP 服務器是否正常作業?
uj5u.com熱心網友回復:
根據您收到的錯誤,這聽起來像是配置問題,而不是存在附件的問題。
你試過SslEnabled = true嗎?
要測驗憑據是否存在問題,您可以嘗試使用以下命令在本地發出請求:
SmtpServer.UseDefaultCredentials = true
值得指出的另一件事是,我建議為您的 SmtpServer 變數使用 using 塊,因為這將處理任何資源的處理,尤其是當您嘗試將附件添加為記憶體流時。
uj5u.com熱心網友回復:
我嘗試了以下方式,啟動可執行程式黑色控制臺出現,沒有別的,至于附件我輸入了檔案所在的路徑,我錯在哪里?
using System.Net;
using System.Net.Mail;
static void email_send()
{
MailMessage mail = new MailMessage();
SmtpClient SmtpServer = new SmtpClient("smtpservername");
mail.From = new MailAddress("sendingemail");
mail.To.Add("receivedemail");
mail.Subject = "Test Mail";
mail.Body = "mail with attachment";
System.Net.Mail.Attachment attachment;
attachment = new System.Net.Mail.Attachment("D:/attachment.txt");
mail.Attachments.Add(attachment);
SmtpServer.Port = 465;
SmtpServer.UseDefaultCredentials = true;
SmtpServer.EnableSsl = true;
SmtpServer.Send(mail);
}
email_send();
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/474785.html
上一篇:發送和保存特定的電子郵件。不是sentitem事件監聽器
下一篇:具有副作用的冪等性
