我已與我的託管公司購買了經過身份驗證的SMTP程序包。使用C發送經過身份驗證的SMTP#
我已經通過Outlook 2010成功測試了帳戶設置。
Outlook設置:
電子郵件:[email protected] 傳出SMTP:smtp.hostingcompany.net
登錄信息:
- 用戶: mydomain.com_account
- 通:密碼
更多設置>發送服務器:
- 我的發送服務器(SMTP)要求認證
- 用戶:MYDOMAIN
- 通行證:密碼
指定NetworkCredentials當我已經嘗試了所有可能的組合和一直收到SMTP異常:「Faulure發送電子郵件」 的InnerException:用於基本-64字符數組無效長度。
public static void SendEmail(string To, string Subject, string Body)
{
try
{
using (SmtpClient mySmtpClient = new SmtpClient(GlobalSettings.EmailHost))
{
mySmtpClient.UseDefaultCredentials = false;
//mySmtpClient.EnableSsl = false;
mySmtpClient.Credentials = new NetworkCredential(mydomain.com_account, GlobalSettings.EmailPassword);
MailAddress from = new MailAddress("[email protected]");
MailAddress to = new MailAddress(To);
using (
MailMessage myMail = new MailMessage(from, to)
{
Subject = Subject,
SubjectEncoding = Encoding.UTF8,
Body = Body,
BodyEncoding = Encoding.UTF8,
IsBodyHtml = true
})
{
mySmtpClient.Send(myMail);
}
}
}
catch (SmtpException ex)
{
Log.WriteLog(string.Format("[Send Mail Exception] --> SMTPException has occurred: {0}", ex.Message), LogLevel.Error);
}
catch (Exception ex)
{
Log.WriteLog(string.Format("[Send Mail Exception] --> Exception has occurred: {0}", ex.Message), LogLevel.Error);
}
}
我已經嘗試了三種可能的用戶名登錄參數NetworkCredential()。
在此先感謝。
編輯:NTLM哈克
添加以下行到我的代碼:
FieldInfo transport = _client.GetType().GetField("transport",
BindingFlags.NonPublic | BindingFlags.Instance);
FieldInfo authModules = transport.GetValue(_client).GetType()
.GetField("authenticationModules",
BindingFlags.NonPublic | BindingFlags.Instance);
Array modulesArray = authModules.GetValue(transport.GetValue(_client)) as Array;
modulesArray.SetValue(modulesArray.GetValue(2), 0);
modulesArray.SetValue(modulesArray.GetValue(2), 1);
modulesArray.SetValue(modulesArray.GetValue(2), 3);
現在我得到一個新的消息:
Mailbox unavailable. The server response was: relay not permitted
能否請您發表您的異常的堆棧跟蹤?有幾個地方可能會彈出。堆棧跟蹤將有助於縮小此範圍。 – Ragesh
@Ragesh - 剛剛添加到那裏。當我傳遞HTML時,是否需要編碼MailMessage對象的body屬性? – Seany84
我敢肯定,你不必手動編碼身體。我也使用HTML主體,並自動對它進行編碼。 – Ragesh