我已与我的托管公司购买了经过身份验证的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