[VB.NET]mail 黑名單擷取 (原創程式)
使用方法:
c:\mail.txt 放黑名單資料
執行程式 會排序 刪除重覆資料
如果是 gmail yahoo hinet seednet
常見免費信箱 封鎖 完整e-mail
奇怪的網域 則直接封鎖*@網域
	Imports System.IO
	Imports System.Text
	Public Class Form1
	    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
	 
	        fileName = "c:\mail.txt"
	        If Not File.Exists(fileName) Then
	            MessageBox.Show(fileName & "檔案不存在")
	            Exit Sub
	        End If
	        '第一次 去除 重複mail
	        distmail(fileName)
	        saveMAil(fileName)
	        '第一次 去除 重複網域
	        distmail(fileName)
	        saveMAil(fileName)
	
	
	    End Sub
	    Function saveMAil(ByVal filename As String)
	        Dim FileNum As Integer
	        FileNum = FreeFile()
	        FileOpen(FileNum, filename, OpenMode.Output)
	        Dim i As Integer
	        Dim a() As String
	        ListBox1.SelectedIndex = 0
	
	        For i = 0 To ListBox1.Items.Count - 1
	            ListBox1.SelectedIndex = i
	            If ListBox1.Text <> "" Then
	
	                a = Split(ListBox1.SelectedItem.ToString, "@")
	
	                If a.Length = 2 Then '如果 沒有@ 則不判斷
	
	
	                    Dim z = a(1).Substring(0, 2)
	
	                    If z <> "se" And z <> "ho" And z <> "ms" And z <> "ya" And z <> "um" And z <> "xu" And z <> "cm" And z <> "hi"  And z <> "gm" Then
	
	                        PrintLine(FileNum, "*@" & a(1))    '把@後面的字串存進來
	                    Else
	                        PrintLine(FileNum, ListBox1.SelectedItem.ToString)
	
	                    End If
	                End If
	            End If
	
	        Next
	
	        FileClose(FileNum)
	        Return True
	
	    End Function
	    Function distmail(ByVal fileName As String)
	        Dim mail As New ArrayList
	
	        Dim ary() As String
	
	
	        ' 1 先讀入mail.txt 排除重覆的,加到mail
	
	        Using fs As New FileStream(fileName, FileMode.Open, FileAccess.Read)
	            Dim sr As New StreamReader(fileName, Encoding.GetEncoding("big5"))
	            ary = Split(sr.ReadToEnd, vbCrLf)
	            For Each i As String In ary.Distinct.ToArray()
	                mail.Add(i)
	            Next
	
	            sr.Close()
	        End Using
	        mail.Sort() '再排序
	
	        ListBox1.DataSource = mail
	        ListBox1.DisplayMember = "tostring()"
	        Return True
	
	
	
	    End Function
	End Class
如有錯誤 歡迎指正