邮件发送问题

时间:2011-03-04 07:02:08

标签: c# email

我已经使用此代码发送邮件,但我没有收到任何错误,但我能够收到邮件。默认的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");
}

3 个答案:

答案 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主机会出现,因为它已成功发送。

但是,正如上面已经说明的那样,可能存在许多其他问题,例如访问发送邮件。虽然,我认为大多数错误都会给你带来错误。