8. Phương pháp luận và phương pháp nghiên cứu:
4.2.2. Tính năng lọc và xử lý mail spam
Chức năng:
Kiểm tra cú pháp trong Subject (Tiêu đề thư) mỗi mail thuộc Inbox nhằm phân loại mail spam, mail đăng ký, mail xem điểm nhằm cĩ hướng giải quyết cụ thể. Tự tạo file text và lưu địa chỉ mail spam nằm cùng thư mục với file Excel cơ sở dữ liệu.
Mơ tả:
Cơng cụ được lập trình với quy định cú pháp đăng ký là DK X và cú pháp xem điểm là XD X. Trong đĩ X là 12 kí tự quy định mã học sinh (6 ký tự đầu là mã trường). Với tính năng lọc mail, cơng cụ sẽ kiểm tra Subject trong thư gửi đến. Nếu Subject khơng chứa một trong hai cú pháp nĩi trên thì địa chỉ người gửi sẽ được ghi vào danh sách địa chỉ mail spam. Nếu đúng một trong các cú pháp thì hệ thống sẽ tiếp tục đưa vào trình xử lý mail với yêu cầu đăng ký hoặc xem điểm tương ứng với cú pháp nhận được.
File text spamLog.txt được khởi tạo nhằm ghi lại những địa chỉ mail gửi tới với cú pháp sai. Nếu thư từ địa chỉ này tiếp tục được gửi đến với cú pháp khơng đúng yêu cầu thì sẽ khơng nhận được thư hướng dẫn phản hồi từ hệ thống nữa. Điều này đảm bảo cho việc tăng tốc vận hành cơng cụ, tiết kiệm tài nguyên khi bỏ qua những mail được gửi đến nằm ngồi mục đích đăng ký địa chỉ hay xem điểm như
mail từ google, mail quảng cáo, mail tự động trả lời của một số cá nhân, hay những mail cố tình được gửi đến với mục đích spam. Mặt khác, tính năng phân loại thư spam cịn giúp ta tránh rơi vào vịng lặp vơ tận khi phía người nhận mail phản hồi cũng cài đặt chức năng tự động trả lời mail.
File text spamLog.txt được khởi tạo một cách tự động khi cĩ mail sai cú pháp. File này được đặt nằm cùng folder với file Excel làm cơ sở dữ liệu. Điều này đảm bảo thuận tiện cho việc quản lý. Mặt khác, khi file Excel được di chuyển đến thư mục khác, ta cũng đảm bảo rằng file spamLog.txt được tự động khởi tạo lại mà khơng cần phải di chuyển cùng file Excel.
Giải thuật:
- Khởi tạo đường dẫn cho tập tin spamLog.txt
Dim cPos As String
cPos = InStrRev(fileName, "\")
logFileName = Left(fileName, cPos) & "spamLog.txt"
- Kiểm tra mail spam:
Function IsSpam(ByVal mailAddr As String) As Boolean
Dim log As String
If (IsFileExists(logFileName)) Then
Using reader As System.IO.StreamReader = _
New System.IO.StreamReader(logFileName)
' Read one line from file
log = reader.ReadLine()
Do While Not String.IsNullOrEmpty(log)
If (log.Contains(mailAddr)) Then
Return True
End If
log = reader.ReadLine()
End Using
End If
Return False
End Function
-Ghi địa chỉ người gửi sai cú pháp vào spamLog.txt:
Sub SpamLog(ByVal mailAddr As String)
Dim oWriter As System.IO.StreamWriter
If (Not IsFileExists(logFileName)) Then
oWriter = New System.IO.StreamWriter(logFileName, False)
Else
oWriter = New System.IO.StreamWriter(logFileName, True)
End If
oWriter.WriteLine("'" & mailAddr & "'") oWriter.Close()
End Sub