OpenPop.NET Nedir? Kullanımı ve Örnekleri

Merhaba arkadaşlar, bu makalede faydalı bir açık kaynak kodlu (open source) kütüphane ile ilgili örnekler paylaşacağım. OpenPop.Net SourceForge üzerinde barındırılan ve geliştirilen bir Pop3 protokolü kütüphanesidir. Bu kütüphane ile WebMail, Horde gibi mail client yazılımlarına benzer uygulamalar yapabilirsiniz pop3 web protokolünün kullanımını kolaylaştırarak mail indirme, silme vs. işlemlerini kolaylaştırır. Örneğin yazdığınız bir admin panelinde kullanıcılarınızın maillerini yönetmesini sağlayabilirsiniz mail gönderim işlemi için openpop.net gibi harici kütüphaneler kullanabileceğiniz gibi .Net Framework’ün dahili SMTP kütüphanesini kullanabilirsiniz. Kendi websitesine buradan ulaşabilirsiniz. Vakit kaybetmeden bir örnek yapalım. Visual Studio üzerinden yeni bir console uygulaması açın ve NuGet Manager’a “OpenPop.Net” yazarak ya da Package Manager Console a “Install-Package OpenPop.NET” yazarak kütüphaneyi yükleyin ya da sitesi üzerinden dll dosyasını indirip projenize Add Reference yöntemiyle ekleyebilirsiniz. Ardından aşağıdaki uygulamayı deneyin.

 

Sunucudaki Tüm Mailleri İndirme İşlemi

using OpenPop;
using OpenPop.Pop3;
using OpenPop.Common;
using OpenPop.Mime;
using System.Net.Mail;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            List<Message> message = FetchAllMessages("123.45.678.900", 110, false, "test@deneme.com", "password");
            foreach (var i in message)
            {
                MailMessage m = i.ToMailMessage();
                
                Console.WriteLine(m.Body);
                Console.WriteLine("-------------------");
            }
            Console.ReadLine();
        }
        public static List<Message> FetchAllMessages(string hostname, int port, bool useSsl, string username, string password)
        {
            // The client disconnects from the server when being disposed
            using (Pop3Client client = new Pop3Client())
            {
                // Sunucuya bağlan
                client.Connect(hostname, port, useSsl);
                // Oturum aç
                client.Authenticate(username, password);
                // Mesaj sayısını al
                int messageCount = client.GetMessageCount();
                List<Message> allMessages = new List<Message>(messageCount);
                // Tüm mesajları indir
                for (int i = messageCount; i > 0; i--)
                {
                    allMessages.Add(client.GetMessage(i));
                }
                return allMessages;
            }
        }
    }
}

FetchAllMessages fonksiyonu pop3 sunucusunun bulunduğu sunucunun ip adresi ya da domain adresini, port numarasını (genelde 110 olur), ssl kullanımı, kullanıcı adı ve şifre parametrelerini alır ve geriye Message tipinden bir List döndürür Main fonksiyonu içerisinde de bu liste içerisinde dönerek mesaj içeriği yazılır.

Sunucudaki Bir Mesajı Silmek

public static void DeleteMessageOnServer(string hostname, int port, bool useSsl, string username, string password, int messageNumber)
{
    using (Pop3Client client = new Pop3Client())
    {
        client.Connect(hostname, port, useSsl);
        client.Authenticate(username, password);
        client.DeleteMessage(messageNumber);
    }
}

Umarım faydalı olmuştur.

Mustafa Tayyip YETİŞ
Yazılım Geliştirme Uzmanı

0.0 Ort. (0% puan) - 0 oy

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir