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:
- Maak eerst een instantie van het type SmtpClient aan om het bericht te verzenden.
- Sla alle aanwezige‑informatie op in de MailAddressCollection‑collectie.
- Maak een instantie van de MailMessage‑klasse aan en stel de benodigde eigenschappen in, zoals From, To en Subject.
- Maak een instantie van het type Appointment aan en geef de locatie, starttijd, eindtijd, organisatoren en aanwezigen op.
- 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.
- Selecteer het bericht waarvoor u een annuleringsverzoek wilt verzenden.
- Klik op Send Cancel Request om het verzoek te verzenden.
- Vraagt de database op om de aanwezige, bericht‑ en agenda‑gerelateerde informatie te verkrijgen.
- Maak instanties van de Calendar‑klasse en de MailMessage‑klasse met behulp van de uit de database opgehaalde informatie.
- Gebruik de methode Appointment.cancelAppointment() om het annuleringsverzoek te versturen.
- 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");
}