发送电子邮件适用于IIS Express(开发服务器),但在IIS中失败

时间:2013-12-16 09:34:43

标签: asp.net email iis iis-express aspnet-development-server

当我在本地运行应用程序时,这很好用 - 基本上在IIS Express(以前称为开发服务器)上。但是,如果我发布到IIS,它不起作用。在两台不同的机器上尝试了两个不同的IIS。我不知道如何在IIS上运行时获取任何日志信息。所有关于检查每分钟是否有新记录发送电子邮件。

的Global.asax:

protected void Application_Start(object sender, EventArgs e)
{
    System.Timers.Timer timer = new System.Timers.Timer();
    timer.Interval = 60000;       
    timer.AutoReset = true;
    timer.Elapsed += new ElapsedEventHandler(NewCandidates);
    timer.Enabled = true; 
}

public void NewCandidates(object source, System.Timers.ElapsedEventArgs e)
{
    SendEmail.MailSender mail = new MailSender();
    mail.EmailSender();
}

EmailSender方法:

public void EmailSender()
    {
        Entities entity = new Entities();
        DateTime moment = DateTime.Now.AddMinutes(-1);

        var ilan = from ilanRow in entity.IsIlan
                   where (ilanRow.Date >= moment) && (ilanRow.Yayinla==true)
                    from iOnay in entity.IlanOnay
                    where iOnay.IlanId == ilanRow.IsIlanId
                    from sirket in entity.KurumFirma
                    where sirket.KurumFirmaId==ilanRow.KurumFirmaId
                    select new { ilanRow, iOnay, sirket };

        List<IlanList> liste = new List<IlanList>();

        foreach (var itemilan in ilan)
        {
            liste.Add(new IlanList
            {
                KurumId     = itemilan.ilanRow.KurumFirmaId,
                IlanId      = itemilan.ilanRow.IsIlanId,
                SirketAdi   = itemilan.sirket.Adi,
                IlanAdi     = itemilan.ilanRow.Adi,
                Il          = itemilan.ilanRow.Il,
                IsAlan      = itemilan.ilanRow.IsAlan,
                Date        = itemilan.ilanRow.Date,
                Sonuc       = itemilan.iOnay.sonuc
            });
        }

        List<IlanOnayList> listeOnay = new List<IlanOnayList>();

        MailMessage message = new MailMessage();
        message.From = new MailAddress("info@company.com");
        message.To.Add(new MailAddress("cuneytkukrer@googlemail.com"));
        message.Subject = "New Ones";
        string body = "<table style=\"border:1px solid gray; padding:5px;\"><th>Şirket Adı</th><th>İlan Adı</th><th>İl</th><th>İş Alanı</th><th>Tarih</th>";
        foreach (var item in liste)
        {
            body = body +
                "<tr><td style=\"border:1px solid gray; padding:5px;\">" + item.SirketAdi +
                "<td style=\"border:1px solid gray; padding:5px;\">" + item.IlanAdi +
                "</td><td style=\"border:1px solid gray; padding:5px;\">" + item.Il +
                "</td><td style=\"border:1px solid gray; padding:5px;\">" + item.IsAlan +
                "</td><td style=\"border:1px solid gray; padding:5px;\">" + item.Tarih +
                "</td></tr>";
        }
        body = body + "</table><br />";
        message.Body = body;
        message.IsBodyHtml = true;
        SmtpClient client = new SmtpClient();
        foreach (var item in liste)
        {
            if (liste.Count > 0 && item.Sonuc != "var")
            {
                client.Send(message);
                var onay = from i in entity.IlanOnay where i.IlanId == item.IlanId select i;
                foreach (var itemonay in onay)
                {
                    itemonay.sonuc = "var";
                    entity.SaveChanges();
                }
            }
        }
    }

Web.Config中:

<system.net>
<mailSettings>
  <smtp from="info@company.com">
    <network host="auth.myhosting.com" port="587" userName="info@company.com" password="123456" defaultCredentials="false" />
  </smtp>
</mailSettings>

1 个答案:

答案 0 :(得分:1)

显然,在将网站发布到IIS时,您需要浏览一次该网站。它正在运作!