การยกเลิกคำขอประชุมด้วย Calendar
Contents
[
Hide
]
คุณสามารถส่งคำขอยกเลิกประชุมด้วย Aspose.Email โดยใช้วัตถุคลาส Appointment ได้ คุณต้องมีข้อมูลคำขอประชุมดั้งเดิมเพื่อยกเลิก ตัวอย่างในบทความนี้ส่งคำขอประชุมก่อน แล้วบันทึกข้อมูลลงฐานข้อมูลและยกเลิกคำขอโดยอิงจาก ID ของข้อความ
การส่งคำขอประชุม
ก่อนที่เราจะสามารถ ยกเลิกคำขอประชุม, เราต้องส่งบางอย่างออกไป:
- แรกเริ่มสร้างอ็อบเจกต์ประเภท SmtpClient สำหรับส่งข้อความ
- บันทึกข้อมูลผู้เข้าร่วมทั้งหมดในคอลเลกชัน MailAddressCollection
- สร้างอ็อบเจกต์ของคลาส MailMessage พร้อมคุณสมบัติที่จำเป็นเช่น From, To และ Subject
- สร้างอ็อบเจกต์ประเภท Appointment และระบุข้อมูลสถานที่, เวลาเริ่ม, เวลาสิ้นสุด, ผู้จัดและผู้เข้าร่วม
- บันทึกข้อมูลทั้งหมดในฐานข้อมูล การทำงานที่เกี่ยวกับฐานข้อมูลทำในเมธอด SaveIntoDB
โค้ดส่วนนี่แสดงวิธีส่งคำขอประชุม
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;
}
การยกเลิกคำขอประชุม
เพื่อยกเลิกคำขอประชุม ให้ดึง ID ของข้อความอีเมลก่อน เนื่องจากเราได้บันทึกข้อมูลนี้ในฐานข้อมูลสำหรับตัวอย่างนี้ เราจึงสามารถดึงกลับมาได้ง่าย
- เลือกข้อความที่ต้องการส่งคำขอการยกเลิก
- คลิก Send Cancel Request เพื่อส่งคำขอ
- สอบถามฐานข้อมูลเพื่อดึงข้อมูลผู้เข้าร่วม, ข้อความและข้อมูลที่เกี่ยวกับปฏิทิน
- สร้างอ็อบเจกต์ของคลาส Calendar และคลาส MailMessage โดยใช้ข้อมูลที่ดึงจากฐานข้อมูล
- ใช้เมธอด Appointment.cancelAppointment() เพื่อส่งคำขอยกเลิก
- ส่งเมลโดยใช้ SMTP.
โค้ดส่วนนี่แสดงวิธียกเลิกคำขอประชุม
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");
}