Avbryt mötesförfrågningar med kalender

Du kan skicka en avbokningsförfrågan för ett möte med Aspose.Email genom att använda Appointment‑klassobjektet. Du måste ha den ursprungliga mötesförfrågningsinformationen för att avbryta den. Exemplet i den här artikeln skickar först en mötesförfrågan, sparar informationen i en databas och avbryter sedan förfrågan baserat på meddelande‑ID.

Skicka mötesförfrågningar

Innan vi kan avbryt mötesförfrågningar, vi måste skicka några:

  1. Skapa först en instans av typen SmtpClient för att skicka meddelandet.
  2. Spara all deltagarinformation i MailAddressCollection‑samlingen.
  3. Skapa en instans av MailMessage‑klassen och nödvändiga egenskaper som From, To och Subject.
  4. Skapa en instans av typen Appointment och ange information om plats, starttid, sluttid, organisatörer och deltagare.
  5. Spara all information i en databas. Databasrelaterat arbete utförs i metoden SaveIntoDB.

Följande kodsnutt visar hur man skickar mötesförfrågningar.

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

Avbrytande av mötesförfrågan

För att avbryta en mötesförfrågan, hämta först e‑postmeddelandets meddelande‑ID. Eftersom vi har sparat denna information i en databas för detta exempel kan vi enkelt hämta den igen.

  1. Välja meddelandet som avbokningsförfrågan ska skickas för.
  2. Klicka på Send Cancel Request för att skicka förfrågan.
  3. Frågar databasen för att hämta information om deltagare, meddelande och kalender.
  4. Skapa instanser av Calendar‑klassen och MailMessage‑klassen med information som hämtats från databasen.
  5. Använd metoden Appointment.cancelAppointment() för att skicka avbokningsförfrågan.
  6. Skicka e‑posten med SMTP.

Följande kodsnutt visar hur man avbryter mötesförfrågan.

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