使用Python实现垃圾邮件黑名单功能
发布时间:2024-01-07 10:36:35
在Python中,可以使用正则表达式来实现垃圾邮件黑名单功能。下面是一个使用正则表达式和Python的示例代码,该代码检查一封电子邮件是否在黑名单中:
import re
# 定义一个黑名单列表
blacklist = [
r'.*@example\.com$', # 匹配以@example.com结尾的邮箱地址
r'^spam.*$', # 匹配以spam开头的字符串
r'viagra', # 匹配viagra字符串
]
def is_spam(email):
for pattern in blacklist:
if re.match(pattern, email):
return True
return False
# 使用例子
email1 = 'spam@example.com'
email2 = 'good@example.com'
email3 = 'username@gmail.com'
print(is_spam(email1)) # 输出: True
print(is_spam(email2)) # 输出: False
print(is_spam(email3)) # 输出: False
在上面的代码中,我们定义了一个blacklist列表,其中包含了几个正则表达式模式,用于匹配垃圾邮件的特征。然后,我们定义了一个is_spam函数,该函数使用re.match函数在给定的电子邮件地址上逐个遍历黑名单中的模式。
如果遇到匹配项,is_spam函数将返回True,表示该电子邮件是垃圾邮件。否则,该函数返回False,表示该电子邮件是正常邮件。
最后,我们使用三个例子测试了is_spam函数。email1匹配了黑名单中的模式,因此返回True。email2没有匹配任何模式,返回False。email3也没有匹配任何模式,返回False。
可以根据实际需求修改blacklist列表中的正则表达式模式,以适应不同的垃圾邮件特征。
