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