カレンダーで会議リクエストをキャンセルする

Appointment クラスオブジェクトを使用して Aspose.Email で会議キャンセルリクエストを送信できます。キャンセルするには、元の会議リクエスト情報が必要です。この記事の例では、まず会議リクエストを送信し、情報をデータベースに保存し、その後メッセージ ID に基づいてリクエストをキャンセルします。

会議リクエストの送信

実行する前に 会議キャンセルリクエスト、いくつか送信する必要があります:

  1. 最初にメッセージ送信用の SmtpClient 型インスタンスを作成します。
  2. すべての参加者情報を MailAddressCollection コレクションに保存します。
  3. MailMessage クラスのインスタンスを作成し、From、To、Subject などの必要なプロパティを設定します。
  4. Appointment 型のインスタンスを作成し、場所、開始時刻、終了時刻、主催者および参加者情報を設定します。
  5. すべての情報をデータベースに保存します。データベース関連の処理は SaveIntoDB メソッドで行われます。

以下のコードスニペットは会議リクエストを送信する方法を示しています。

class Attendees {
    public String MessageId;
    public String EmailAddress;
    public String DisplayName;
}

class Message {
    public String MessageId;
    public String From;
    public String Subject;
    public String Body;
    public String AppLocation;
    public Date AppStartDate;
    public Date AppEndDate;
    public String AppSummary;
    public String AppDescription;
}

public void send(Attendees[] attendeesArr, String from, String appLocation, Date appStartDate, Date appEndDate) {
    try {
        // Create an instance of SMTPClient
        SmtpClient client = new SmtpClient("MailServer", "Username", "Password");
        // Get the attendees
        MailAddressCollection attendees = new MailAddressCollection();
        for (Attendees a : attendeesArr) {
            attendees.addItem(new MailAddress(a.EmailAddress, a.DisplayName));
        }

        // Create an instance of MailMessage for sending the invitation
        MailMessage msg = new MailMessage();

        // Set from address, attendees
        msg.setFrom(new MailAddress(from));
        msg.setTo(attendees);

        // Create am instance of Appointment
        Appointment app = new Appointment(appLocation, appStartDate, appEndDate, new MailAddress(from), attendees);
        app.setSummary("Monthly Meeting");
        app.setDescription("Please confirm your availability.");
        msg.addAlternateView(app.requestApointment());

        // Save the info to the database
        if (saveIntoDB(msg, app) == true) {
            // Save the message and Send the message with the meeting request
            msg.save(msg.getMessageId() + ".eml", SaveOptions.getDefaultEml());
            client.send(msg);
            System.out.println("message sent");
        }
    } catch (Exception ex) {
        System.err.println(ex);
    }
}

private boolean saveIntoDB(MailMessage msg, Appointment app) {
    // Save Message and Appointment information
    Message messageRow = new Message();
    messageRow.MessageId = msg.getMessageId();
    messageRow.From = msg.getFrom().getAddress();
    messageRow.Subject = msg.getSubject();
    messageRow.Body = msg.getBody();
    messageRow.AppLocation = app.getLocation();
    messageRow.AppStartDate = app.getStartDate();
    messageRow.AppEndDate = app.getEndDate();
    messageRow.AppSummary = app.getSummary();
    messageRow.AppDescription = app.getDescription();
    addToDB(messageRow);

    // Save attendee information
    for (MailAddress address : app.getAttendees()) {
        Attendees attendeesRow = new Attendees();
        attendeesRow.MessageId = msg.getMessageId();
        attendeesRow.EmailAddress = address.getAddress();
        attendeesRow.DisplayName = address.getDisplayName();
        addToDB(attendeesRow);
    }

    return true;
}

会議リクエストのキャンセル

会議リクエストをキャンセルするには、まずメールメッセージのメッセージ ID を取得します。この例ではデータベースにこの情報を保存しているので、簡単に再取得できます。

  1. キャンセルリクエストを送信するメッセージを選択します。
  2. Send Cancel Request をクリックしてリクエストを送信します。
  3. データベースをクエリして、参加者、メッセージ、カレンダー関連情報を取得します。
  4. データベースから取得した情報を使用して、Calendar クラスと MailMessage クラスのインスタンスを作成します。
  5. Appointment.cancelAppointment() メソッドを使用してキャンセルリクエストを送信します。
  6. SMTP を使用してメールを送信します。

以下のコードスニペットは会議リクエストをキャンセルする方法を示しています。

public void cancel(String messageId) {
    // Get the message and calendar information from the database get the attendee information

    // Get the attendee information in reader
    Attendees[] attendeesRows = getAttendeesFromDB(messageId);

    // Create a MailAddressCollection from the attendees found in the database
    MailAddressCollection attendees = new MailAddressCollection();
    for (Attendees attendeesRow : attendeesRows) {
        attendees.addItem(new MailAddress(attendeesRow.EmailAddress, attendeesRow.DisplayName));
    }
    // Get message and calendar information
    Message messageRow = getMessageFromDB(messageId);

    // Create the Calendar object from the database information
    Appointment app = new Appointment(messageRow.AppLocation, messageRow.AppSummary, messageRow.AppDescription, messageRow.AppStartDate, messageRow.AppEndDate,
            new MailAddress(messageRow.From), attendees);

    // Create message and Set from and to addresses and Add the cancel meeting request
    MailMessage msg = new MailMessage();
    msg.setFrom(new MailAddress(messageRow.From));
    msg.setTo(attendees);
    msg.setSubject("Cencel meeting");
    msg.addAlternateView(app.cancelAppointment());
    SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587, "user@gmail.com", "password");
    smtp.send(msg);
    System.out.println("cancellation request successfull");
}