我想知道是否可以在筛选中设置过滤器来捕获发件人域并将其与收件人邮箱名称进行匹配。
用途是当公司出售/共享我的个人信息时过滤不需要的电子邮件。
前任。
应该接受这一点:
FROM: [email protected]
TO: [email protected]
这应该被拒绝:
FROM: [email protected]
TO: [email protected]
答案1
您可能需要“allof”运算符,它是用于多个测试的布尔“and”。如下所示:
require ["fileinto", "mailbox"];
if allof
(
address "To" "[email protected]",
address "From" "[email protected]"
)
{
fileinto "INBOX.Trash";
}
请注意,这是坏的在此阶段拒绝的想法是,因为这会产生退回,而这通常是不希望的。邮件在提交给 Sieve 时已被接受,因此您可以将其移至垃圾邮件或垃圾箱、丢弃(静默删除)等,但不要拒绝。
还要注意的是,邮件中的“收件人”和“发件人”标题很容易被伪造。我可以通过设置正确的信封地址并将邮件中的“收件人”标题伪造为其他内容来绕过此过滤器。信封地址(在 SMTP“RCPT To”命令中指定,而不是在邮件头中指定)控制邮件投递到哪个邮箱。要针对信封地址进行测试,请在测试中使用单词“信封”而不是“地址”,并且还需要“信封”Sieve 模块。
例如这里了解详情。
答案2
基于前面的答案,我个人喜欢使用以下操作:
{ 拒绝“用户电子邮件地址被拒绝”;停止; }
您可能需要包括:
要求“拒绝”;
位于筛选文件的顶部。
我特别喜欢这个,因为:
- 它从邮政局长地址发回一封电子邮件拒绝通知,使其看起来好像目的地地址是错误的。
- 措辞很模糊,无法判断是否与实际地址有关,或者用户是否以某种方式拒绝了它。
无论哪种方式,邮件都会被销毁并且根本不会到达您的收件箱!