Skip to content

Instantly share code, notes, and snippets.

@kivancbakdi
Created May 31, 2018 13:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kivancbakdi/e74526652da6f740544de516bdd1e51b to your computer and use it in GitHub Desktop.
Save kivancbakdi/e74526652da6f740544de516bdd1e51b to your computer and use it in GitHub Desktop.
using Newtonsoft.Json;
using PeakUp.Email.Manager.Extensions;
using PeakUp.Email.Manager.Models;
using System;
using System.Messaging;
namespace PeakUp.Email.Manager
{
class Program
{
static void Main(string[] args)
{
// Email Queue zaten bilgisayarda mevcut ise getirilmesi, değilse ise oluşturulup getirilmesi (Detaylar için Extensions altında bulunan CreateIfNotExists metodunun incelenmesi gerekiyor.
var emailQueue = new MessageQueue().CreateIfNotExists("mail");
//string veri alışverişi yaptığımız için emailQueue için string type bir formatter tanımlıyoruz
Type formatterType = typeof(string);
emailQueue.Formatter = new XmlMessageFormatter(new Type[] { formatterType });
//ReceiveCompleted Event'ini gelen mesajları okuyabilmek için takip etmemiz gerekiyor.
emailQueue.ReceiveCompleted += EmailQueue_ReceiveCompleted;
//Gelen mesajları almaya başlamak için BeginReceive() metodunu çağırmamız gerekiyor.
emailQueue.BeginReceive();
Console.ReadKey();
}
private static void EmailQueue_ReceiveCompleted(object sender, ReceiveCompletedEventArgs e)
{
//Sender objesi MessageQueue tipine dönüştürülür
var mailQueue = (MessageQueue)sender;
//Json formatında gönderdiğimiz mesajı tekrar objeye çeviriyoruz.
var mailObject = JsonConvert.DeserializeObject<Mail>((string)e.Message.Body);
//Gelen mesajı konsola yazdırıyoruz
Console.WriteLine($"Gönderilecek adres: {mailObject.To}, Mesaj: {mailObject.Content}");
//Mesaj almaya devam etmek için BeginReceive metodunu tekrar çağırıyoruz.
mailQueue.BeginReceive();
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment