MSG içinde Oylama Seçenekleri ve Tepkileriyle Çalışma

MapiMessage ile Oylama Seçenekleri Oluştur

Microsoft Outlook, yeni bir e-posta oluştururken anket oluşturma özelliği sağlar; kullanıcıların Evet, Hayır, Belki vb. gibi oylama seçeneklerini eklemelerine izin verir. Aspose.Email, programlı olarak yeni bir Outlook mesajı oluştururken benzer işlevsellik sunar. The FollowUpOptions class, şunları sağlar VotingButtons oylama seçeneklerini ayarlamak veya almak için kullanılabilecek özellik. MapiMessage Aspose.Email ad alanı içinde, Microsoft Outlook tarafından yaygın olarak kullanılan Mesajlaşma Uygulama Programlama Arayüzü (MAPI) formatındaki bir e-posta mesajını temsil eden bir sınıfa atıfta bulunur. MapiMessage sınıfını kullanarak, geliştiriciler bir e-postaya anket düğmeleri ekleyebilir. Bu makale, bir MapiMessage’ı oylama seçenekleriyle oluşturarak anket oluşturmanın ayrıntılı bir örneğini sağlar.

Anket Oluştur

Aşağıdaki kod parçacığı, Aspose.Email kullanarak bir Outlook mesajında anket nasıl oluşturulacağını gösterir. The FollowUpManager sınıf, oylama seçeneklerini ayarlamayı kolaylaştırır.

// Create a MapiMessage with the sender, recipient, subject, and body
var msg = new MapiMessage(
    "from@test.com",
    "to@test.com",
    "Flagged message",
    "Make it nice and short, but descriptive. The description may appear in search engines' search results pages..."
);

// Create FollowUpOptions and set the voting buttons
var options = new FollowUpOptions
{
    VotingButtons = "Yes;No;Maybe;Exactly!"
};

// Apply the follow-up options to the message
FollowUpManager.SetOptions(msg, options);
  • FollowUpOptions: Oylama düğmeleri gibi takip eylemlerini yapılandırmak için özellikler sağlar.
  • VotingButtons: Farklı oylama seçeneklerinin noktalı virgülle ayrıldığı bir dize özelliği.
  • FollowUpManager.SetOptions: Belirtilen takip seçeneklerini mesaja uygular.

Oy Seçeneklerini Oku

Bir …‘dan oylama seçeneklerini almak için MapiMessage, …‘ı kullanabilirsiniz GetOptions metodu. Bu metod sadece oylama butonlarını getirmekle kalmaz, gerektiğinde kategoriler gibi ek parametreler de sağlayabilir.

// Retrieve follow-up options from the message
var options = FollowUpManager.GetOptions(msg);

// Voting buttons are returned as a string with a semicolon separator
string votingButtons = options.VotingButtons;

// Display the voting buttons
Console.WriteLine($"Voting Options: {votingButtons}");
  • GetOptions: …‘ın …‘ı getirir FollowUpOptions mesajdan alınan nesne, oylama butonlarını ve muhtemelen diğer özellikleri içerir.
  • VotingButtons: Seçenekler noktalı virgül ile ayrılmış bir dize olarak çıkarılır, bu da kolay gösterim veya manipülasyon sağlar.

Oy Butonlarını Oku

Sadece oylama butonlarına bireysel dize listesi olarak erişmeniz gerekiyorsa, … kullanabilirsiniz. GetVotingButtons metodu, bunları bir koleksiyon olarak döndürür.

// Read only voting buttons as a collection of string values
var votingButtons = FollowUpManager.GetVotingButtons(msg);

// Display each voting button
foreach (var button in votingButtons)
{
    Console.WriteLine($"Voting Button: {button}");
}
  • GetVotingButtons: Oylama butonu dizelerinin bir koleksiyonunu döndürür, böylece bunlar üzerinde dolaşmak ve görüntüleme ya da değiştirme gibi işlemler yapmak kolaylaşır.

Oy Butonları Ekle

Mevcut bir mesaja ek oylama butonları eklemek için … kullanabilirsiniz. AddVotingButton metodu. Bu, oylama seçeneklerini dinamik olarak güncellemek için yararlı olabilir.

// Add a new voting button to the existing message
FollowUpManager.AddVotingButton(msg, "Indeed!");
  • AddVotingButton: Mesajın mevcut oylama butonlarına yeni bir oylama seçeneği ekler, anketlerin dinamik olarak özelleştirilmesine izin verir.

Oy Butonlarını Sil

Belirli oylama butonlarını kaldırmak veya bir mesajdaki tüm butonları temizlemek isteyebilirsiniz. Aşağıdaki kod her iki işlemi de … kullanarak gösterir. RemoveVotingButton ve ClearVotingButtons yöntemler.

// Delete a specific voting button
FollowUpManager.RemoveVotingButton(msg, "Exactly!");

// Or delete all voting buttons from the MapiMessage
FollowUpManager.ClearVotingButtons(msg);

Oy Sonuçlarını Oku

Aspose.Email ayrıca bir mesajın alıcılarından oy sonuçlarını okumayı sağlar. Alıcının yanıtı ve yanıt zamanı gibi özelliklere erişebilirsiniz.

// Load a MapiMessage from a file
var msg = MapiMessage.Load("sample.msg");

// Iterate through each recipient and display their vote information
foreach (var recipient in msg.Recipients)
{
    Console.WriteLine($"Recipient: {recipient.DisplayName}");

    // Get the recipient's response using the appropriate MapiPropertyTag
    var response = recipient.Properties[MapiPropertyTag.PR_RECIPIENT_AUTORESPONSE_PROP_RESPONSE].GetString();
    Console.WriteLine($"Response: {response}");

    // Get the response time
    var responseTime = recipient.Properties[MapiPropertyTag.PR_RECIPIENT_TRACKSTATUS_TIME].GetDateTime();
    Console.WriteLine($"Response time: {responseTime}\n");
}

MSG’den Tepki Bilgilerini Al

Bu GetReactions metodu FollowUpManager sınıf, bir MAPI mesajındaki tepkileri listelemenize olanak tanır, böylece kullanıcı etkileşimini analiz etmeyi kolaylaştırır. Aşağıdaki kod örneği belirli bir mesaj için mevcut tepkileri nasıl alacağınızı gösterir ve kullanıcı etkileşimlerine dair bilgi sağlar.

// Load the message file
var msg = MapiMessage.Load(fileName);

// Retrieve the list of reactions on the message
var reactions = FollowUpManager.GetReactions(msg);

// Iterate through each reaction and output the details to the console
foreach (var reaction in reactions)
{
    Console.WriteLine($"User: {reaction.Name}, Email: {reaction.Email}, Reaction: {reaction.Type}, Date: {reaction.ReactionDateTime}");
}