Annullamento delle richieste di riunione con il calendario
Puoi inviare una richiesta di annullamento di una riunione con Aspose.Email usando l’oggetto Appointment. È necessario disporre delle informazioni originali della richiesta di riunione per annullarla. L’esempio in questo articolo invia prima una richiesta di riunione, salva le informazioni in un database e poi annulla la richiesta basandosi sull’ID del messaggio.
Invio di richieste di riunione
Prima di poter annullare richieste di riunione, dobbiamo inviarne alcuni:
- Prima crea un’istanza di tipo SmtpClient per inviare il messaggio.
- Salva tutte le informazioni dei partecipanti nella collezione MailAddressCollection.
- Crea un’istanza della classe MailMessage e le proprietà necessarie come From, To e Subject.
- Crea un’istanza di tipo Appointment e fornisci informazioni su luogo, ora di inizio, ora di fine, organizzatori e partecipanti.
- Salva tutte le informazioni in un database. Il lavoro relativo al database viene eseguito nel metodo SaveIntoDB.
Il seguente frammento di codice mostra come inviare richieste di riunione.
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;
}
Annullamento della richiesta di riunione
Per annullare una richiesta di riunione, prima ottieni l’ID del messaggio email. Poiché abbiamo salvato queste informazioni in un database per questo esempio, possiamo recuperarle facilmente.
- Selezionare il messaggio per cui inviare la richiesta di annullamento.
- Fai clic su Send Cancel Request per inviare la richiesta.
- Interroga il database per ottenere le informazioni relative a partecipanti, messaggi e calendario.
- Crea istanze della classe Calendar e della classe MailMessage utilizzando le informazioni recuperate dal database.
- Usa il metodo Appointment.cancelAppointment() per inviare la richiesta di annullamento.
- Invia l’email usando l’SMTP.
Il seguente frammento di codice mostra come annullare la richiesta di riunione.
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");
}