📄 inspammerblacklist.java
字号:
/**************************************************************** * Licensed to the Apache Software Foundation (ASF) under one * * or more contributor license agreements. See the NOTICE file * * distributed with this work for additional information * * regarding copyright ownership. The ASF licenses this file * * to you under the Apache License, Version 2.0 (the * * "License"); you may not use this file except in compliance * * with the License. You may obtain a copy of the License at * * * * http://www.apache.org/licenses/LICENSE-2.0 * * * * Unless required by applicable law or agreed to in writing, * * software distributed under the License is distributed on an * * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * * KIND, either express or implied. See the License for the * * specific language governing permissions and limitations * * under the License. * ****************************************************************/package org.apache.james.transport.matchers;import org.apache.mailet.GenericMatcher;import org.apache.mailet.Mail;import javax.mail.MessagingException;import java.net.InetAddress;import java.net.UnknownHostException;import java.util.Collection;import java.util.StringTokenizer;/** * Checks the network IP address of the sending server against a * blacklist of spammers. There are 3 lists that support this... * <ul> * <li><b>blackholes.mail-abuse.org</b>: Rejected - see http://www.mail-abuse.org/rbl/ * <li><b>dialups.mail-abuse.org</b>: Dialup - see http://www.mail-abuse.org/dul/ * <li><b>relays.mail-abuse.org</b>: Open spam relay - see http://www.mail-abuse.org/rss/ * </ul> * * Example: * <mailet match="InSpammerBlacklist=blackholes.mail-abuse.org" class="ToProcessor"> * <processor>spam</processor> * </mailet> * */public class InSpammerBlacklist extends GenericMatcher { String network = null; public void init() throws MessagingException { network = getCondition(); } public Collection match(Mail mail) { String host = mail.getRemoteAddr(); try { //Have to reverse the octets first StringBuffer sb = new StringBuffer(); StringTokenizer st = new StringTokenizer(host, " .", false); while (st.hasMoreTokens()) { sb.insert(0, st.nextToken() + "."); } //Add the network prefix for this blacklist sb.append(network); //Try to look it up org.apache.james.dnsserver.DNSServer.getByName(sb.toString()); //If we got here, that's bad... it means the host // was found in the blacklist return mail.getRecipients(); } catch (UnknownHostException uhe) { //This is good... it's not on the list return null; } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -