1

Я ищу программное обеспечение, в котором мы могли бы составить 52-недельное расписание задач и получать уведомления о наступлении задачи (с напоминаниями). Типы задач могут включать, например, конкретный тип обслуживания сервера или обновления Windows для определенной группы серверов.

В качестве примера сценария:

Фреду нужно запланировать время для обновления пула веб-серверов IIS и пула веб-серверов Apache каждые три месяца. Он создает запись и устанавливает ее повторение каждые три месяца. За две недели до запланированного события он получает электронное письмо с напоминанием о событии. Через неделю группа безопасности получает оповещение по электронной почте для обновления серверов.

Любая помощь будет оценена. Не уверен, что это хороший вопрос для SuperUser или нет.

2 ответа2

-1

Вот что я в итоге использовал ... Не идеально, но работает нормально.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Exchange.WebServices.Data;
using Microsoft.Exchange.WebServices.Autodiscover;
using System.Net;

namespace program
{
    class Program
    {
        static void Main(string[] args)
        {
            // Connect to Office 365 Exchange
            ExchangeService service = new ExchangeService();
            NetworkCredential ncNetworkCredential = new NetworkCredential("user@example", "password", "");
            service.Credentials = ncNetworkCredential;
            service.AutodiscoverUrl("user@example", delegate { return true; });

            // Connect to shared mailbox and get the folder id of the calendar
            Mailbox mb = new Mailbox("user@example.com");
            FolderId fid = new FolderId(WellKnownFolderName.Calendar, mb);

            // Create a string to hold all of the email content...
            String emailBody = "";
            emailBody += "<p style=\"font-size:10pt; color: #AAA;text-align:center;\">Please do not reply to this email.</p>";

            // Create a weekly calendar view...
            CalendarView view = new CalendarView(DateTime.Now.AddDays(1).AddHours(-7),DateTime.Now.AddDays(8));
            FindItemsResults<Appointment> results = service.FindAppointments(fid, view);

            // Look through the appointments of the week.
            for (int i = 0; i < results.Items.Count; i++)
            {
                try
                {
                    // Add text to the email body.
                    emailBody += "<p>";
                    emailBody += "Task: " + results.Items[i].Subject.ToString() + "<br />";
                    emailBody += "Resource: " + results.Items[i].Location.ToString() + "<br />";
                    emailBody += "Date: " + results.Items[i].Start.ToShortDateString() + " " + results.Items[i].Start.ToShortTimeString() + "<br />";
                    emailBody += "</p>";
                }
                catch
                {
                    // Add text to the email body.
                    emailBody += "<p>";
                    emailBody += "Task: " + results.Items[i].Subject.ToString() + "<br />";
                    //emailBody += "Resource: " + results.Items[i].Location.ToString() + "<br />";
                    emailBody += "Date: " + results.Items[i].Start.ToShortDateString() + " " + results.Items[i].Start.ToShortTimeString() + "<br />";
                    emailBody += "</p>";
                }
            }

            // Line referencing the calendar.
            emailBody += "<p style=\"color: red;text-align:center;\">For more information on tasks check the \"calendar\"</p>";

            // Create a new email message.
            EmailMessage email = new EmailMessage(service);
            email.ToRecipients.Add("user@example.com");
            email.Subject = "Scheduled Tasks (" + DateTime.Now.ToShortDateString() + ")";
            email.Body = emailBody;
            try
            {
                email.Send();
            }
            catch (Exception e)
            {
                Console.WriteLine("Error: " + e);
            }
        }
    }
}
-1

Outlook имеет довольно удобную функцию задач, которую вы можете использовать.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .