@Resource(name="dnsservice") public void setDNSService(DNSService dns) { super.setDNSService(new SMTPServerDNSServiceAdapter(dns)); }
@Test public void testNullSenderNotReject() { ValidSenderDomainHandler handler = createHandler(); HookReturnCode response = handler.doMail(setupMockedSession(null),null).getResult(); assertThat(HookReturnCode.declined()).describedAs("Not blocked cause its a nullsender").isEqualTo(response); }
@Override public HookResult doMail(SMTPSession session, MaybeSender sender) { if (!sender.isNullSender() && !hasMXRecord(session,sender.get().getDomain().name())) { return HookResult.builder() .hookReturnCode(HookReturnCode.deny()) .smtpReturnCode(SMTPRetCode.SYNTAX_ERROR_ARGUMENTS) .smtpDescription(DSNStatus.getStatus(DSNStatus.PERMANENT,DSNStatus.ADDRESS_SYNTAX_SENDER) + " sender " + sender + " contains a domain with no valid MX records") .build(); } else { return HookResult.DECLINED; } }
@Test public void testNullSenderNotReject() { ValidSenderDomainHandler handler = createHandler(); HookReturnCode response = handler.doMail(setupMockedSession(null), MaybeSender.nullSender()).getResult(); assertThat(HookReturnCode.declined()).describedAs("Not blocked cause its a nullsender").isEqualTo(response); }
@Test public void testInvalidSenderDomainReject() throws Exception { ValidSenderDomainHandler handler = createHandler(); SMTPSession session = setupMockedSession(new MailAddress("invalid@invalid")); MaybeSender sender = (MaybeSender) session.getAttachment(SMTPSession.SENDER, State.Transaction); HookReturnCode response = handler.doMail(session, sender).getResult(); assertThat(HookReturnCode.deny()).describedAs("Blocked cause we use reject action").isEqualTo(response); } }
@Test public void testInvalidSenderDomainReject() throws Exception { ValidSenderDomainHandler handler = createHandler(); SMTPSession session = setupMockedSession(new MailAddress("invalid@invalid")); HookReturnCode response = handler.doMail(session,(MailAddress) session.getAttachment(SMTPSession.SENDER, State.Transaction)).getResult(); assertThat(HookReturnCode.deny()).describedAs("Blocked cause we use reject action").isEqualTo(response); } }