Kelola Janji: Buat & Manipulasi, Konversi ICS ke MSG
Buat Janji dan Simpan ke Disk dalam Format MSG atau ICS
The Appointment kelas dalam Aspose.Email untuk .NET dapat digunakan untuk membuat janji baru. Dalam artikel ini, kami pertama-tama membuat janji dan menyimpannya ke disk dalam format ICS. Langkah-langkah berikut diperlukan untuk membuat janji dan menyimpannya ke disk.
- Buat sebuah instansi dari Appointment kelas dan inisialisasi dengan konstruktor ini.
- Berikan argumen berikut dalam konstruktor di atas
- Lokasi
- Ringkasan
- Deskripsi
- Tanggal Mulai
- Tanggal Selesai
- Penyelenggara
- Peserta
- Panggil Save() metode dan tentukan nama file serta format dalam argumen.
Janji dapat dibuka di Microsoft Outlook atau program apa pun yang dapat memuat file ICS. Jika file dibuka di Microsoft Outlook, secara otomatis menambahkan janji ke kalender Outlook.
Potongan kode berikut menunjukkan cara membuat dan menyimpan sebuah janji ke disk dalam format ICS atau MSG.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
// Create and initialize an instance of the Appointment class
Appointment appointment = new Appointment(
"Meeting Room 3 at Office Headquarters",// Location
"Monthly Meeting", // Summary
"Please confirm your availability.", // Description
new DateTime(2015, 2, 8, 13, 0, 0), // Start date
new DateTime(2015, 2, 8, 14, 0, 0), // End date
"from@domain.com", // Organizer
"attendees@domain.com"); // Attendees
// Save the appointment to disk in ICS format
appointment.Save(fileName + ".ics", new AppointmentIcsSaveOptions());
Console.WriteLine("Appointment created and saved to disk successfully.");
// Save the appointment to disk in MSG format
appointment.Save(fileName + ".msg", new AppointmentMsgSaveOptions(););
Console.WriteLine("Appointment created and saved to disk successfully.");
Buat Janji dengan Konten HTML
Anda dapat menentukan representasi alternatif deskripsi acara dalam tipe konten yang berbeda menggunakan header X-ALT-DESC. Ini memungkinkan penerima file iCalendar memilih representasi yang paling sesuai dengan kebutuhan mereka. Misalnya, Anda dapat menyertakan deskripsi teks biasa menggunakan tipe konten "text/plain" dan deskripsi HTML menggunakan tipe konten "text/html". Header X-ALT-DESC ditambahkan untuk setiap representasi alternatif. Untuk membuat janji dengan konten HTML, atur HtmlDescription properti.
Coba contoh kode berikut untuk membuat janji dengan deskripsi HTML alternatif:
- Buat instance baru dari kelas Appointment.
- Berikan parameter yang diperlukan ke konstruktor Appointment:
- Tentukan lokasi janji.
- Atur tanggal dan waktu mulai.
- Atur tanggal dan waktu akhir.
- Tentukan penyelenggara.
- Tentukan peserta.
- Setel HtmlDescription properti dari objek janji, menunjukkan bahwa deskripsi dalam format HTML.
- Set properti Description dari objek janji ke string berformat HTML, terbungkus dalam string multiline:
- Markup HTML menyertakan blok <style> yang mendefinisikan kelas CSS bernama "text" dengan gaya font.
- Badan HTML berisi tag paragraf <p> dengan kelas CSS "text", dan pesan undangan sebenarnya.
- Objek janji sekarang siap, dan Anda dapat melakukan operasi lebih lanjut atau menyimpannya sebagai file iCalendar.
var appointment = new Appointment("Bygget 83",
DateTime.UtcNow, // start date
DateTime.UtcNow.AddHours(1), // end date
new MailAddress("TintinStrom@from.com", "Tintin Strom"), // organizer
new MailAddress("AinaMartensson@to.com", "Aina Martensson")) // attendee
{
HtmlDescription = @"
<html>
<style type=""text/css"">
.text {
font-family:'Comic Sans MS';
font-size:16px;
}
</style>
<body>
<p class=""text"">Hi, I'm happy to invite you to our party.</p>
</body>
</html>"
};
Buat Permintaan Janji Draf
Telah ditunjukkan dalam artikel-artikel kami sebelumnya cara membuat dan menyimpan sebuah janji dalam format ICS. Sering kali diperlukan untuk membuat permintaan Janji dalam mode Draft, sehingga informasi dasar ditambahkan dan kemudian Draft Janji yang sama dapat diteruskan ke pengguna lain untuk perubahan yang diperlukan sesuai kebutuhan individu. Untuk menyimpan sebuah Janji dalam mode Draft, MethodType properti kelas Appointment harus diset ke AppointmentMethodType.Publish. Potongan kode berikut menunjukkan cara membuat permintaan janji draft.
string sender = "test@gmail.com";
string recipient = "test@email.com";
MailMessage message = new MailMessage(sender, recipient, string.Empty, string.Empty);
Appointment app = new Appointment(string.Empty, DateTime.Now, DateTime.Now, sender, recipient)
{
MethodType = AppointmentMethodType.Publish
};
message.AddAlternateView(app.RequestApointment());
MapiMessage msg = MapiMessage.FromMailMessage(message);
// Save the appointment as draft.
msg.Save(dstDraft);
Console.WriteLine(Environment.NewLine + "Draft saved at " + dstDraft);
Pembuatan Janji Draf dari Teks
Kode potongan berikut menunjukkan cara membuat janji temu draft dari Teks.
string ical = @"BEGIN:VCALENDAR
METHOD:PUBLISH
PRODID:-//Aspose Ltd//iCalender Builder (v3.0)//EN
VERSION:2.0
BEGIN:VEVENT
ATTENDEE;CN=test@gmail.com:mailto:test@gmail.com
DTSTART:20130220T171439
DTEND:20130220T174439
DTSTAMP:20130220T161439Z
END:VEVENT
END:VCALENDAR";
string sender = "test@gmail.com";
string recipient = "test@email.com";
MailMessage message = new MailMessage(sender, recipient, string.Empty, string.Empty);
AlternateView av = AlternateView.CreateAlternateViewFromString(ical, new ContentType("text/calendar"));
message.AlternateViews.Add(av);
MapiMessage msg = MapiMessage.FromMailMessage(message);
msg.Save(dataDir + "draft_out.msg");
Sesuaikan Janji
Atur Status Peserta pada Peserta Janji
API Aspose.Email untuk .NET memungkinkan Anda mengatur status peserta janji saat menyusun pesan balasan. Ini menambahkan properti PARTSTAT ke file ICS.
DateTime startDate = new DateTime(2011, 12, 10, 10, 12, 11),
endDate = new DateTime(2012, 11, 13, 13, 11, 12);
MailAddress organizer = new MailAddress("aaa@amail.com", "Organizer");
MailAddressCollection attendees = new MailAddressCollection();
MailAddress attendee1 = new MailAddress("bbb@bmail.com", "First attendee");
MailAddress attendee2 = new MailAddress("ccc@cmail.com", "Second attendee");
attendee1.ParticipationStatus = ParticipationStatus.Accepted;
attendee2.ParticipationStatus = ParticipationStatus.Declined;
attendees.Add(attendee1);
attendees.Add(attendee2);
Appointment target = new Appointment(location, startDate, endDate, organizer, attendees);
Sesuaikan Identifier Produk untuk ICalendar
API Aspose.Email untuk .NET memungkinkan mengambil atau mengatur pengidentifikasi produk yang membuat objek iCalendar.
string description = "Test Description";
Appointment app = new Appointment("location", "test appointment", description, DateTime.Today,
DateTime.Today.AddDays(1), "first@test.com", "second@test.com");
IcsSaveOptions saveOptions = IcsSaveOptions.Default;
saveOptions.ProductId = "Test Corporation";
app.Save(dataDir + "ChangeProdIdOfICS.ics", saveOptions);
Memuat Janji
Juga, Appointment kelas dapat digunakan untuk memuat sebuah janji dari file ICS.
Muat Janji dalam Format ICS
Untuk memuat janji dalam format ICS, langkah-langkah berikut diperlukan:
- Buat sebuah instansi dari Appointment kelas.
- Panggil Load() metode dengan memberikan jalur file ICS.
- Baca properti apa pun untuk mendapatkan informasi apa pun dari janji temu (file ICS).
Potongan kode berikut menunjukkan cara memuat sebuah janji dalam format ICS.
// Load an Appointment just created and saved to disk and display its details.
Appointment loadedAppointment = Appointment.Load(dstEmail);
Console.WriteLine(Environment.NewLine + "Loaded Appointment details are as follows:");
// Display the appointment information on screen
Console.WriteLine("Summary: " + loadedAppointment.Summary);
Console.WriteLine("Location: " + loadedAppointment.Location);
Console.WriteLine("Description: " + loadedAppointment.Description);
Console.WriteLine("Start date: " + loadedAppointment.StartDate);
Console.WriteLine("End date: " + loadedAppointment.EndDate);
Console.WriteLine("Organizer: " + appointment.Organizer);
Console.WriteLine("Attendees: " + appointment.Attendees);
Console.WriteLine(Environment.NewLine + "Appointment loaded successfully from " + dstEmail);
Konversi ICS ke MSG
API memungkinkan Anda dengan mudah mengonversi sebuah Appointment menjadi objek pesan. Contoh kode berikut menunjukkan cara mengonversi permintaan janji menjadi MailMessage atau MapiMessage:
var appointment = Appointment.Load("appRequest.ics");
var eml = appointment.ToMailMessage();
var msg = appointment.ToMapiMessage();
Baca Beberapa Acara dari File ICS
List<Appointment> appointments = new List<Appointment>();
CalendarReader reader = new CalendarReader(dataDir + "US-Holidays.ics");
while (reader.NextEvent())
{
appointments.Add(reader.Current);
}
//working with appointments...
Tuliskan Beberapa Peristiwa ke File ICS
IcsSaveOptions saveOptions = new IcsSaveOptions();
saveOptions.Action = AppointmentAction.Create;
using (CalendarWriter writer = new CalendarWriter(dataDir + "WriteMultipleEventsToICS_out.ics", saveOptions))
{
for (int i = 0; i < 10; i++)
{
Appointment app = new Appointment(string.Empty, DateTime.Now, DateTime.Now, "sender@domain.com", "receiver@domain.com");
app.Description = "Test body " + i;
app.Summary = "Test summary:" + i;
writer.Write(app);
}
}
Menentukan Versi Janji
Untuk menentukan versi dari sebuah janji, Anda dapat menggunakan Appointment.Version properti dari Appointment kelas. Properti ini membantu menentukan versi apa yang menjadi dasar file mereka, memastikan integrasi dengan sistem dan aplikasi lain.
Contoh kode berikut menunjukkan cara mengimplementasikan properti ini dalam proyek Anda:
var app = Appointment.Load("meeting.ics");
if (app.Version == 1.0)
{
// do something
}