|
|
|
|
using log4net;
|
|
|
|
|
using Quartz;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Data;
|
|
|
|
|
using System.Data.SqlClient;
|
|
|
|
|
using System.IO;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Text;
|
|
|
|
|
using MailKit.Net.Smtp;
|
|
|
|
|
using MimeKit;
|
|
|
|
|
using HtmlAgilityPack;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
namespace JobSendAgentMail
|
|
|
|
|
{
|
|
|
|
|
public class JobSendCtn : IJob
|
|
|
|
|
{
|
|
|
|
|
private ILog log = LogManager.GetLogger(typeof(JobSendCtn));
|
|
|
|
|
|
|
|
|
|
public void Execute(IJobExecutionContext context)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
string connStr = context.JobDetail.JobDataMap.GetString("ConnectString");
|
|
|
|
|
string querySql = context.JobDetail.JobDataMap.GetString("QuerySql");
|
|
|
|
|
string MAILSENDACCOUNT = context.JobDetail.JobDataMap.GetString("MAILSENDACCOUNT");
|
|
|
|
|
string MAILSENDPASSWORD = context.JobDetail.JobDataMap.GetString("MAILSENDPASSWORD");
|
|
|
|
|
string MAILSENDSERVICE = context.JobDetail.JobDataMap.GetString("MAILSENDSERVICE");
|
|
|
|
|
string MAILSENDPORT = context.JobDetail.JobDataMap.GetString("MAILSENDPORT");
|
|
|
|
|
string MAILISSSL = context.JobDetail.JobDataMap.GetString("MAILISSSL");
|
|
|
|
|
//string MAILTEMPLATE = context.JobDetail.JobDataMap.GetString("MAILTEMPLATE");
|
|
|
|
|
string MAILTITLEJOB = context.JobDetail.JobDataMap.GetString("MAILTITLE");
|
|
|
|
|
string receiver = context.JobDetail.JobDataMap.GetString("MAILRECEIVER");
|
|
|
|
|
log.Debug($"开始执行发送邮件");
|
|
|
|
|
string maildescrption = "";
|
|
|
|
|
using (SqlConnection dbcon = new SqlConnection(connStr))
|
|
|
|
|
{
|
|
|
|
|
SqlDataAdapter adapter = new SqlDataAdapter(querySql, dbcon);
|
|
|
|
|
DataTable table = new DataTable();
|
|
|
|
|
adapter.Fill(table);
|
|
|
|
|
if (table.Columns.Contains("箱号"))
|
|
|
|
|
{
|
|
|
|
|
if (table.Rows.Count > 0)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
foreach (DataRow row in table.Rows)
|
|
|
|
|
{
|
|
|
|
|
if (row["箱号"].ToString() != "")
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
maildescrption = maildescrption + Environment.NewLine + row["箱号"].ToString();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
log.Debug($"资料不全:{row["BSNO"].ToString()}");
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
log.Debug($"未查询到数据,SQL语句:{querySql}");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!string.IsNullOrEmpty(maildescrption)) {
|
|
|
|
|
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
SendEmail se = new SendEmail(receiver, MAILSENDACCOUNT, "", "", MAILTITLEJOB, maildescrption, false);
|
|
|
|
|
|
|
|
|
|
se.SetSmtp(MAILSENDACCOUNT, MAILSENDPASSWORD, MAILSENDSERVICE,Convert.ToInt16(MAILSENDPORT), false, System.Net.Mail.MailPriority.Normal); //必须在所有参数设置完后调用此方法
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//var message = new MimeMessage();
|
|
|
|
|
//message.From.Add(new MailboxAddress(MAILSENDACCOUNT, MAILSENDACCOUNT));
|
|
|
|
|
//var maillist = receiver.Split(';');
|
|
|
|
|
//foreach (var mailaddr in maillist)
|
|
|
|
|
//{
|
|
|
|
|
// message.To.Add(MailboxAddress.Parse(mailaddr));
|
|
|
|
|
//}
|
|
|
|
|
//message.Subject = MAILTITLEJOB;
|
|
|
|
|
//var bodyBuilder = new BodyBuilder();
|
|
|
|
|
//bodyBuilder.TextBody = maildescrption;
|
|
|
|
|
|
|
|
|
|
//message.Body = bodyBuilder.ToMessageBody();
|
|
|
|
|
//using (var client = new SmtpClient())
|
|
|
|
|
//{
|
|
|
|
|
// client.Connect(MAILSENDSERVICE, Convert.ToInt16(MAILSENDPORT),false);
|
|
|
|
|
// client.Authenticate(MAILSENDACCOUNT, MAILSENDPASSWORD);
|
|
|
|
|
// client.Send(message);
|
|
|
|
|
// client.Disconnect(true);
|
|
|
|
|
//}
|
|
|
|
|
log.Debug($"邮件发送成功");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
log.Debug($"邮件发送失败:错误信息{ex.Message}");
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
log.Error($"未包含所需的列(mblno,carrierid,portloadid),SQL语句:{querySql}");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|