Annuleren van vergaderverzoeken met Agenda

U kunt een annuleringsverzoek voor een vergadering verzenden met Aspose.Email via het Appointment‑klasse‑object. U moet de oorspronkelijke vergaderverzoek‑informatie hebben om het verzoek te annuleren. Het voorbeeld in dit artikel verzendt eerst een vergaderverzoek, slaat de informatie op in een database en annuleert vervolgens het verzoek op basis van het bericht‑ID.

Vergaderverzoeken versturen

Voordat we kunnen vergaderverzoeken annuleren, we moeten er een paar verzenden:

  1. Maak eerst een instantie van het type SmtpClient aan om het bericht te verzenden.
  2. Sla alle aanwezige‑informatie op in de MailAddressCollection‑collectie.
  3. Maak een instantie van de MailMessage‑klasse aan en stel de benodigde eigenschappen in, zoals From, To en Subject.
  4. Maak een instantie van het type Appointment aan en geef de locatie, starttijd, eindtijd, organisatoren en aanwezigen op.
  5. Sla alle informatie op in een database. Database‑gerelateerde taken worden uitgevoerd in de SaveIntoDB‑methode.

De volgende codefragment laat zien hoe u vergaderverzoeken kunt versturen.

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

Vergaderverzoek annuleren

Om een vergaderverzoek te annuleren, haal eerst het bericht‑ID van het e‑mailbericht op. Omdat we deze informatie voor dit voorbeeld in een database hebben opgeslagen, kunnen we het gemakkelijk opnieuw verkrijgen.

  1. Selecteer het bericht waarvoor u een annuleringsverzoek wilt verzenden.
  2. Klik op Send Cancel Request om het verzoek te verzenden.
  3. Vraagt de database op om de aanwezige, bericht‑ en agenda‑gerelateerde informatie te verkrijgen.
  4. Maak instanties van de Calendar‑klasse en de MailMessage‑klasse met behulp van de uit de database opgehaalde informatie.
  5. Gebruik de methode Appointment.cancelAppointment() om het annuleringsverzoek te versturen.
  6. Verstuur de e‑mail met de SMTP.

De volgende codefragment laat zien hoe u het vergaderverzoek kunt annuleren.

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