Annulation de demandes de réunion avec le calendrier
Vous pouvez envoyer une demande d’annulation de réunion avec Aspose.Email en utilisant l’objet de la classe Appointment. Vous devez disposer des informations de la demande de réunion originale pour pouvoir annuler la demande. L’exemple de cet article envoie d’abord une demande de réunion, enregistre les informations dans une base de données, puis annule la demande en se basant sur l’ID du message.
Envoi de demandes de réunion
Avant de pouvoir annuler des demandes de réunion, nous devons en envoyer quelques‑uns :
- Commencez par créer une instance du type SmtpClient pour l’envoi du message.
- Enregistrez toutes les informations des participants dans la collection MailAddressCollection.
- Créez une instance de la classe MailMessage et les propriétés nécessaires comme From, To et Subject.
- Créez une instance du type Appointment et fournissez les informations de lieu, d’heure de début, d’heure de fin, d’organisateurs et de participants.
- Enregistrez toutes les informations dans une base de données. Le travail lié à la base de données est effectué dans la méthode SaveIntoDB.
Le fragment de code suivant montre comment envoyer des demandes de réunion.
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;
}
Annulation de demande de réunion
Pour annuler une demande de réunion, récupérez d’abord l’ID du message e‑mail. Puisque nous avons enregistré cette information dans une base de données pour cet exemple, nous pouvons la récupérer facilement.
- Sélection du message pour lequel envoyer la demande d’annulation.
- Cliquez sur Send Cancel Request pour envoyer la demande.
- Interroge la base de données pour obtenir les informations relatives aux participants, aux messages et au calendrier.
- Créez des instances des classes Calendar et MailMessage en utilisant les informations récupérées dans la base de données.
- Utilisez la méthode Appointment.cancelAppointment() pour envoyer la demande d’annulation.
- Envoyez le courriel en utilisant le SMTP.
Le fragment de code suivant montre comment annuler la demande de réunion.
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");
}