// Herhangi Bir Website’den E-Mail Adreslerini Yakalama | www.yazilimcik.com
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.IO;
using System.Text.RegularExpressions;
// Herhangi Bir Website’den E-Mail Adreslerini Yakalama | www.yazilimcik.com
namespace Websiteden_EMail_Yakalama_Yazilimcik_Com
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private string SiteAdresiniAl()
        {
            string website = "http://" + txtAdres.Text;
            return website;
        }
        private string KaynakSiteyiAl(string adres)
        {
            WebResponse Response = null;
            try
            {
                WebRequest WebRequest = WebRequest.Create(adres);
                Response = WebRequest.GetResponse();
            }
            catch (WebException e)
            {
                lblDurum.Text = "Siteye Baglanamiyor..!";
                btnYakala.Enabled = true;
                return null;
            }
            Stream str = Response.GetResponseStream();
            StreamReader strReader = new StreamReader(str);
            string resource = strReader.ReadToEnd();
            return resource.ToLower();
        }
        private string[] MailAdresleriniAl(string resource)
        {
            string EMailDeseni = @"(href=)((’)|(""))(mailto:)(?(.*))((’)|(""))";
            int i = 0;
            Regex Regex = new Regex(EMailDeseni);
            Match str = Regex.Match(resource);
            MatchCollection EMailColumn = Regex.Matches(resource);
            string[] EMail = new string[EMailColumn.Count];
            foreach (Match EMailMatch in EMailColumn)
            {
                EMail[i] = EMailMatch.Groups["mail"].ToString();
                i++;
            }
            return EMail;
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            btnYeni.Enabled = false;
            txtAdres.Focus();
            // www.yazilimcik.com
        }
        private void btnYakala_Click(object sender, EventArgs e)
        {
            btnYeni.Enabled = true;
            btnYakala.Enabled = false;
            if (txtAdres.Text == string.Empty)
            {
                MessageBox.Show("Lütfen Geçerli Bir Web Adresi Girin..!", "Bilgi:");
                btnYakala.Enabled = true;
                txtAdres.Focus();
            }
            else
            {
                MessageBox.Show("Website’sinden Gerekli E-Mail Bilgileri Aliniyor..\nLütfen Bekleyin..!", "Bilgi: www.yazilimcik.com", MessageBoxButtons.OK, MessageBoxIcon.Information);
                string website = SiteAdresiniAl();
                string resource = KaynakSiteyiAl(website);
                if (resource != null)
                {
                    string[] EMail = MailAdresleriniAl(resource);
                    lblDurum.Text = "" + EMail.Length + " Tane E-Mail Adresi Bulundu..!";
                    foreach (string yakalananMail in EMail)
                    {
                        lstEMail.Items.Add(yakalananMail);
                    }
                }
            }
        }
        private void btnYeni_Click(object sender, EventArgs e)
        {
            btnYakala.Enabled = true;
            lblDurum.Text = string.Empty;
            lstEMail.Items.Clear();
            txtAdres.Text = string.Empty;
            txtAdres.Focus();
        }
    }
}
// Herhangi Bir Website’den E-Mail Adreslerini Yakalama | www.yazilimcik.com