Я могу сделать это легко в php/mysql, однако C# mvc бритва - совсем другая история.csharp schedule email razor mvc4
Все, что я хочу сделать, это установить задание cron на сервере (я предположил, что это не задание cron для C# mvc, даже не знаю, что называется), так что электронное письмо можно отправлять по месяцам: 1mth, 2mths и т. Д.
Ниже приведена моя sendEmail, которая не работает из-за того, что мне нужно включить имя пользователя/пароль в код, чтобы он мог работать, что, на мой взгляд, абсурдно (sendemail in " php "не требует учетных данных отправителей), если нет лучшего способа, пожалуйста, покажите мне путь.
//send email
public void sendEmail()
{
MailMessage message = new MailMessage();
message.From = new MailAddress("[email protected]");
message.To.Add(new MailAddress("[email protected]"));
message.Subject = "This is my subject";
message.Body = "testing testing testing";
SmtpClient client = new SmtpClient();
client.Host = "localhost";
client.UseDefaultCredentials = false;
client.Send(message);
}
//date difference
public decimal monthDifference(DateTime d1, DateTime d2)
{
if (d1 > d2)
{
DateTime hold = d1;
d1 = d2;
d2 = hold;
}
decimal monthsApart = Math.Abs((12 * (d1.Year - d2.Year)) + d2.Month - d1.Month - 1);
decimal daysinStartingMonth = DateTime.DaysInMonth(d1.Year, d1.Month);
monthsApart = monthsApart + (1 - ((d1.Day - 1)/daysinStartingMonth));
decimal daysinEndingMonth = DateTime.DaysInMonth(d2.Year, d2.Month);
monthsApart = monthsApart + (d2.Day/daysinEndingMonth);
return monthsApart;
}
//i will use linq to query the database and get the start and end date
if(monthDifference(start, end) == 2 || monthDifference(start, end) == 1)
{
sendEmail();
}