Membatalkan Permintaan Rapat dengan Kalender

Anda dapat mengirim permintaan pembatalan rapat dengan Aspose.Email menggunakan objek Kelas Appointment. Anda perlu memiliki informasi permintaan rapat asli untuk membatalkan permintaan tersebut. Contoh dalam artikel ini pertama mengirim permintaan rapat, menyimpan informasi di basis data, dan kemudian membatalkan permintaan berdasarkan ID pesan.

Mengirim Permintaan Pertemuan

Sebelum kita dapat membatalkan permintaan rapat, kami harus mengirim beberapa:

  1. Pertama buat instance tipe SmtpClient untuk mengirim pesan.
  2. Simpan semua informasi peserta dalam koleksi MailAddressCollection.
  3. Buat instance kelas MailMessage dan properti yang diperlukan seperti From, To, dan Subject.
  4. Buat instance tipe Appointment dan berikan informasi lokasi, waktu mulai, waktu selesai, penyelenggara, dan peserta.
  5. Simpan semua informasi di basis data. Pekerjaan terkait basis data dilakukan dalam metode SaveIntoDB.

Potongan kode berikut menunjukkan cara mengirim permintaan rapat.

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;
}

Membatalkan Permintaan Rapat

Untuk membatalkan permintaan rapat, pertama dapatkan ID pesan email tersebut. Karena kami telah menyimpan informasi ini di basis data untuk contoh ini, kami dapat dengan mudah mengambilnya kembali.

  1. Memilih pesan yang akan dikirimkan permintaan pembatalan.
  2. Klik Send Cancel Request untuk mengirim permintaan.
  3. Menanyakan basis data untuk mendapatkan informasi peserta, pesan, dan kalender terkait.
  4. Buat instance dari kelas Calendar dan kelas MailMessage menggunakan informasi yang diambil dari basis data.
  5. Gunakan metode Appointment.cancelAppointment() untuk mengirim permintaan pembatalan.
  6. Kirim email menggunakan SMTP.

Potongan kode berikut menunjukkan cara membatalkan permintaan rapat.

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");
}