2013-11-10 3 views
0

Я пытаюсь отправить почтовые письма с Quartz.net, но без успеха. Во-первых, часть кода электронной почты ниже проверена для работы, поскольку я открыл новый проект, чтобы проверить его. Когда я открывал application.log, я могу видеть сообщения Log.DebugFormat, а исключения не были обнаружены, однако ни одно электронное письмо не отправлялось. Любой совет? Благодарю.Электронная почта cron job (asp.net) с Quartz.Net не работает

public void Execute(IJobExecutionContext context)   
     { 
      try 
      { 
       Log.DebugFormat("{0}****{0}Job {1} fired @ {2} next scheduled for {3}{0}***{0} Fired by {4}", 
                     Environment.NewLine, 
                     context.JobDetail.Key, 
                     context.FireTimeUtc.Value.ToString("r"), 
                     context.NextFireTimeUtc.Value.ToString("r"), 
                     "James"); 

       Log.DebugFormat("{0}***{0}Hello World!!!{0}***{0}", Environment.NewLine); 

        // Try send email 
        var mail = new Email(); 
        mail.IsBodyHtml = true; 
        mail.MailAddresses = "[email protected]"; 
        mail.MailSubject = "Test Cron Job"; 

        var mailMessage = mail.CreateMailMessage(); 
        var Th = new Thread(() => Email.Send(mailMessage, 6, 3000, true)); 
        Th.Start(); 
      } 
      catch (Exception ex) 
      { 
       Log.DebugFormat("{0}***{0}Failed: {1}{0}***{0}", Environment.NewLine, ex.Message); 
      } 
     } 

App.Config:

<?xml version="1.0"?> 
<configuration> 
    <configSections> 
    <section name="quartz" type="System.Configuration.NameValueSectionHandler, 
      System, Version=1.0.5000.0,Culture=neutral, 
      PublicKeyToken=b77a5c561934e089"/> 
    </configSections> 
    <quartz> 
    <add key="quartz.scheduler.instanceName" value="ServerScheduler"/> 
    <add key="quartz.threadPool.type" value="Quartz.Simpl.SimpleThreadPool, Quartz"/> 
    <add key="quartz.threadPool.threadCount" value="10"/> 
    <add key="quartz.threadPool.threadPriority" value="2"/> 
    <add key="quartz.jobStore.misfireThreshold" value="60000"/> 
    <add key="quartz.jobStore.type" value="Quartz.Simpl.RAMJobStore, Quartz"/> 
    </quartz> 

    <startup> 
     <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/> 
    </startup> 

    <system.net> 
    <mailSettings> 
     <smtp deliveryMethod="Network" from="[email protected]"> 
     <network host="smtp.live.com" port="25" userName="[email protected]"   password="xxxxxxxxx" /> 
     </smtp> 
    </mailSettings> 
    </system.net> 

</configuration> 
+0

Почему вы начинаете новую тему для отправки по электронной почте? Работа выполняется в выделенном потоке, поэтому новый поток только добавляет способ потерять информацию об исключении. Исключение (и) произойдет в другом потоке и, таким образом, не будет захвачено вашим блоком catch. –

ответ

0

Ok случиться так, что внутри /Quartz.Net/Quartz.Server.exe.config, которые должны находиться в программных файлах (x86), я пропускаю вне connectionstring и mailsettings. Надеюсь, это может помочь кому-то другому.

Смежные вопросы