Advertisement
Guest User

Untitled

a guest
Oct 3rd, 2018
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.63 KB | None | 0 0
  1. Imports System.IO
  2. Imports System.Text
  3.  
  4. Imports KellermanSoftware.NetEmailValidation
  5.  
  6. Module Module1
  7.  
  8. Private emailValidator As EmailValidation
  9. Private options As List(Of ValidationOptions)
  10.  
  11. Sub Main()
  12. emailValidator = New EmailValidation("www.getmywarez.com", "4+N0/zARvT8UeuWLIQh0ItqUdcjkmDxuVbFQ2TekXc4=")
  13. options = emailValidator.BestConnectionOptions()
  14. emailValidator.DisableLogging()
  15.  
  16. ValidateEmails()
  17. End Sub
  18.  
  19.  
  20. Sub ValidateEmails()
  21.  
  22. Dim dirPath As String = "C:\Users\Administrador\Desktop\Mail Lists"
  23. Dim curLines As Integer
  24. Dim curValidMails As Integer
  25. Dim curValidMails2 As Integer
  26. Dim totalLines As Integer
  27. Dim emailAddresses As New Dictionary(Of String, String)(StringComparer.Ordinal)
  28. Dim lineSet As New HashSet(Of String)(StringComparer.Ordinal)
  29. Dim enc As Encoding = Encoding.Default
  30. Dim consoleRowPos As Integer
  31. Dim sb As New StringBuilder()
  32. Dim tmpfile As FileInfo
  33. Dim bakFilePath As String
  34.  
  35. For Each fi As FileInfo In New DirectoryInfo(dirPath).GetFiles("*.txt", SearchOption.TopDirectoryOnly)
  36.  
  37. Console.WriteLine(String.Format("Parsing file....: {0}", fi.FullName))
  38. consoleRowPos = Console.CursorTop
  39. tmpfile = New FileInfo(Path.GetTempFileName)
  40. bakFilePath = Path.Combine(fi.DirectoryName, fi.Name & ".bak")
  41.  
  42. For Each line As String In File.ReadLines(fi.FullName, enc)
  43.  
  44. curLines += 1
  45. emailAddresses.Add(curLines, line)
  46.  
  47. If (curLines = 10000) Then
  48. Dim results As List(Of Result) = emailValidator.ValidateList(emailAddresses, options)
  49.  
  50. For Each result As Result In results
  51. ' sb.AppendLine(String.Format("Address: ""{0}""", result.EmailAddress))
  52. ' sb.AppendLine(String.Format("Status.: ""{0}""", result.Status.ToString()))
  53. ' sb.AppendLine()
  54.  
  55. Select Case result.Status
  56.  
  57. Case ValidationStatus.MaximumEmailsValidated
  58. Console.WriteLine(String.Format("{0} lines parsed, {1} valid emails.", totalLines.ToString("n0"), curValidMails.ToString("n0")))
  59. Console.WriteLine("Saving entries to original file...")
  60. fi.CopyTo(bakFilePath, overwrite:=True)
  61. tmpfile.CopyTo(fi.FullName, overwrite:=True)
  62. ' File.AppendAllLines(Path.Combine(fi.DirectoryName, fi.Name & "_validated.txt"), lineSet, enc)
  63. MsgBox("Reached maximum email validation checks: " & curLines.ToString("n0"))
  64. Environment.Exit(1)
  65.  
  66. Case ValidationStatus.PassedAllRequestedValidation,
  67. ValidationStatus.WhiteListed,
  68. ValidationStatus.Greylisted,
  69. ValidationStatus.TimeoutExceeded,
  70. ValidationStatus.MailboxQuotaExceeded,
  71. ValidationStatus.ExceptionOccurred
  72. lineSet.Add(result.EmailAddress)
  73. curValidMails += 1
  74. curValidMails2 += 1
  75. Case Else
  76. ' Validation failed. Skip.
  77.  
  78. End Select
  79.  
  80. Next result
  81.  
  82. totalLines += curLines
  83. curLines = 0
  84.  
  85. Console.CursorTop = consoleRowPos
  86. Console.WriteLine(String.Format("{0} lines parsed, {1} valid emails.", totalLines.ToString("n0"), curValidMails.ToString("n0")))
  87. 'Debug.WriteLine(sb.ToString)
  88. 'sb.Clear()
  89. emailAddresses.Clear()
  90. End If
  91.  
  92. If (curValidMails2 >= 10000000) Then
  93. Console.CursorTop = consoleRowPos
  94. Console.WriteLine("Saving new entries to temporary file... ")
  95. File.AppendAllLines(tmpfile.FullName, lineSet, enc)
  96. lineSet.Clear()
  97. emailAddresses.Clear()
  98. curValidMails2 = 0
  99. End If
  100.  
  101. Next line
  102.  
  103. Console.CursorTop = consoleRowPos
  104. Console.WriteLine(String.Format("{0} lines parsed, {1} valid emails.", totalLines.ToString("n0"), curValidMails.ToString("n0")))
  105. Console.WriteLine("Saving entries to temporary file...")
  106. File.AppendAllLines(tmpfile.FullName, lineSet, enc)
  107.  
  108. Console.WriteLine("Saving entries to original file...")
  109. Console.WriteLine()
  110. tmpfile.Replace(fi.FullName, bakFilePath)
  111. 'fi.CopyTo(bakFilePath, overwrite:=True)
  112. ' fi.Delete()
  113. ' tmpfile.CopyTo(fi.FullName, overwrite:=True)
  114.  
  115. ' File.AppendAllLines(Path.Combine(fi.DirectoryName, fi.Name & "_validated.txt"), lineSet, enc)
  116. lineSet.Clear()
  117. emailAddresses.Clear()
  118. curLines = 0
  119. curValidMails = 0
  120. curValidMails2 = 0
  121. totalLines = 0
  122.  
  123. Next fi
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130. ' Parallel.ForEach(File.ReadLines(fi.FullName, enc), parallelOptions, New Action(Of String, ParallelLoopState, Long)(
  131. ' Sub(line As String, state As ParallelLoopState, value As Long)
  132.  
  133. ' ' curLines += 1
  134.  
  135. ' 'Dim emailResult As Result = Nothing
  136. ' 'Try
  137. ' ' emailResult = emailValidator.ValidEmail(line, options)
  138. ' ' 'Console.WriteLine(String.Format("Address: ""{0}""; Status: {1}", line, emailResult.Status.ToString()))
  139.  
  140. ' 'Catch ex As KellermanSoftware.NetEmailValidation.ConnectionException
  141. ' ' MsgBox(ex.Message)
  142.  
  143. ' 'Catch ex As System.Net.Sockets.SocketException
  144. ' ' MsgBox(ex.Message)
  145.  
  146. ' 'Catch ex As System.Exception
  147. ' ' MsgBox(ex.Message)
  148.  
  149. ' 'End Try
  150.  
  151. ' 'Select Case emailResult.Status
  152.  
  153. ' ' Case ValidationStatus.MaximumEmailsValidated
  154. ' ' File.AppendAllLines(Path.Combine(fi.DirectoryName, fi.Name & "_validated.txt"), lineSet, enc)
  155. ' ' MsgBox("Reached maximum email validation checks: " & curLines)
  156. ' ' Environment.Exit(1)
  157.  
  158. ' ' Case ValidationStatus.PassedAllRequestedValidation,
  159. ' ' ValidationStatus.WhiteListed,
  160. ' ' ValidationStatus.Greylisted,
  161. ' ' ValidationStatus.TimeoutExceeded,
  162. ' ' ValidationStatus.MailboxQuotaExceeded,
  163. ' ' ValidationStatus.ExceptionOccurred
  164. ' ' lineSet.Add(line)
  165. ' ' curValidMails += 1
  166.  
  167. ' ' Case Else
  168. ' ' ' Validation failed. Skip.
  169.  
  170. ' 'End Select
  171.  
  172. ' 'If (curValidMails = 1000) Then
  173. ' ' File.AppendAllLines(Path.Combine(fi.DirectoryName, fi.Name & "_validated.txt"), lineSet, enc)
  174. ' ' lineSet.Clear()
  175. ' ' curValidMails = 0
  176. ' 'End If
  177.  
  178. ' End Sub))
  179.  
  180. ' Console.WriteLine(String.Format("Saving file.....: {0}", fi.FullName))
  181.  
  182. ' ' fi.CopyTo(Path.Combine(fi.DirectoryName, fi.Name & ".bak"))
  183. ' ' File.WriteAllLines(fi.FullName, lineSet, enc)
  184.  
  185. ' File.AppendAllLines(Path.Combine(fi.DirectoryName, fi.Name & "_validated.txt"), lineSet, enc)
  186. ' lineSet.Clear()
  187. ' totalLines += curLines
  188. ' curLines = 0
  189.  
  190. ' Console.WriteLine()
  191. 'Next
  192.  
  193.  
  194. MsgBox("Done !")
  195. Environment.Exit(0)
  196.  
  197. End Sub
  198.  
  199.  
  200. End Module
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement