我已经使用此代码发送邮件,但我没有收到任何错误,但我能够收到邮件。默认的smtp服务器也设置为“127.0.0.1”作为“inetmgr”中继邮件中的本地主机,但我仍然无法接收邮件。我不知道问题出在哪里。
在emailsender.cs
课程中,这是代码:
public void SendEmail(string To, String Subject, String Body, String uname)
{
string body = "Hi " + uname + ",\n\n \t" + Body + "\n" + " \n Regards, \n LMS Team" + "\n\n\tSent at: " + DateTime.Now + " \n\n\t\t---- This is an auto generated mail. Please do not reply.";
try
{
try
{
MailMessage Message = new MailMessage();
Message.From = new MailAddress("karhik.varadarajan@asteor.com");
if (!string.IsNullOrEmpty(To))
Message.To.Add(new MailAddress(To));
Message.Subject = Subject;
Message.Body = body;
try
{
SmtpClient smtpClient = new SmtpClient("localhost");
smtpClient.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis;
smtpClient.Port = 25;
smtpClient.UseDefaultCredentials = false;
smtpClient.Send(Message);
}
catch (System.Web.HttpException ehttp)
{
throw new Exception("Email Sending Failed", ehttp);
}
}
catch (IndexOutOfRangeException ex)
{
throw new IndexOutOfRangeException("Email Sending Failed", ex);
}
}
catch (System.Exception ex)
{
throw new Exception("Email Sending Failed", ex);
}
}
在.aspx
文件中:
protected void Page_Load(object sender, EventArgs e)
{
EmailSender email = new EmailSender();
email.SendEmail("karhik.varadarajan@asteor.com", "testingmail", "this is a test mail", "From");
}
答案 0 :(得分:0)
我遇到了同样的问题,有时组织不允许访问发送电子邮件。所以我尝试了电子邮件中继服务器。尝试弹性电子邮件。
答案 1 :(得分:0)
如果使用PickupDirectoryFromIis选项,请检查C:\ Inetpub \ mailroot \ Pickup或Queue或Badmail目录是否创建了EML文件。如果它在PickUp或Queue文件夹中,IIS可能会处理该文件。如果它在BadMail中,则IIS无法处理该文件。
答案 2 :(得分:0)
如果没有错误,则很可能是服务器设置问题。首先,您使用的是localhost,而不是127.0.0.1。我建议在调用localhost时使用127.0.0.1作为最佳实践。
即使它是“不应该也是”,也没有理由使用localhost。至少在windows etc \ hosts文件中放入“127.0.0.1 localhost”。您也可以尝试一个您知道可以访问的外部SMTP主机(例如您的isp)。我知道错误配置的smtp主机会出现,因为它已成功发送。
但是,正如上面已经说明的那样,可能存在许多其他问题,例如访问发送邮件。虽然,我认为大多数错误都会给你带来错误。