List of usage examples for org.apache.commons.net.smtp SMTPClient sendCommand
public int sendCommand(String command, String args) throws IOException
From source file:org.apache.james.smtpserver.SMTPServerTest.java
private void doTestHeloEhloResolv(String heloCommand) throws IOException { SMTPClient smtpProtocol = new SMTPClient(); smtpProtocol.connect("127.0.0.1", smtpListenerPort); assertTrue("first connection taken", smtpProtocol.isConnected()); // no message there, yet assertNull("no mail received by mail server", queue.getLastMail()); String fictionalDomain = "abgsfe3rsf.de"; String existingDomain = "james.apache.org"; String mail = "sender@james.apache.org"; String rcpt = "rcpt@localhost"; smtpProtocol.sendCommand(heloCommand, fictionalDomain); smtpProtocol.setSender(mail);//from w w w .j av a 2 s . c om smtpProtocol.addRecipient(rcpt); // this should give a 501 code cause the helo/ehlo could not resolved assertEquals("expected error: " + heloCommand + " could not resolved", 501, smtpProtocol.getReplyCode()); smtpProtocol.sendCommand(heloCommand, existingDomain); smtpProtocol.setSender(mail); smtpProtocol.addRecipient(rcpt); if (smtpProtocol.getReplyCode() == 501) { fail(existingDomain + " domain currently cannot be resolved (check your DNS/internet connection/proxy settings to make test pass)"); } // helo/ehlo is resolvable. so this should give a 250 code assertEquals(heloCommand + " accepted", 250, smtpProtocol.getReplyCode()); smtpProtocol.quit(); }
From source file:org.apache.james.smtpserver.SMTPServerTest.java
@Test public void testReverseEqualsHelo() throws Exception { smtpConfiguration.setReverseEqualsHelo(); smtpConfiguration.setAuthorizedAddresses("192.168.0.1"); // temporary alter the loopback resolution try {/* w w w . j ava 2 s .com*/ dnsServer.setLocalhostByName(InetAddress.getByName("james.apache.org")); } catch (UnknownHostException e) { fail("james.apache.org currently cannot be resolved (check your DNS/internet connection/proxy settings to make test pass)"); } try { init(smtpConfiguration); SMTPClient smtpProtocol1 = new SMTPClient(); smtpProtocol1.connect("127.0.0.1", smtpListenerPort); assertTrue("first connection taken", smtpProtocol1.isConnected()); // no message there, yet assertNull("no mail received by mail server", queue.getLastMail()); String helo1 = "abgsfe3rsf.de"; String helo2 = "james.apache.org"; String mail = "sender"; String rcpt = "recipient"; smtpProtocol1.sendCommand("helo", helo1); smtpProtocol1.setSender(mail); smtpProtocol1.addRecipient(rcpt); // this should give a 501 code cause the helo not equal reverse of // ip assertEquals("expected error: helo not equals reverse of ip", 501, smtpProtocol1.getReplyCode()); smtpProtocol1.sendCommand("helo", helo2); smtpProtocol1.setSender(mail); smtpProtocol1.addRecipient(rcpt); // helo is resolvable. so this should give a 250 code assertEquals("Helo accepted", 250, smtpProtocol1.getReplyCode()); smtpProtocol1.quit(); } finally { dnsServer.setLocalhostByName(null); } }
From source file:org.apache.james.smtpserver.SMTPServerTest.java
@Test public void testEhloResolvDefault() throws Exception { init(smtpConfiguration);/*from ww w . j a va2s . co m*/ SMTPClient smtpProtocol1 = new SMTPClient(); smtpProtocol1.connect("127.0.0.1", smtpListenerPort); smtpProtocol1.sendCommand("ehlo", "abgsfe3rsf.de"); // ehlo should not be checked. so this should give a 250 code assertEquals("ehlo accepted", 250, smtpProtocol1.getReplyCode()); smtpProtocol1.quit(); }
From source file:org.apache.james.smtpserver.SMTPServerTest.java
@Test public void testReverseEqualsEhlo() throws Exception { smtpConfiguration.setReverseEqualsEhlo(); smtpConfiguration.setAuthorizedAddresses("192.168.0.1"); // temporary alter the loopback resolution InetAddress jamesDomain = null; try {/*from w w w. j a v a 2 s.co m*/ jamesDomain = dnsServer.getByName("james.apache.org"); } catch (UnknownHostException e) { fail("james.apache.org currently cannot be resolved (check your DNS/internet connection/proxy settings to make test pass)"); } dnsServer.setLocalhostByName(jamesDomain); try { init(smtpConfiguration); SMTPClient smtpProtocol1 = new SMTPClient(); smtpProtocol1.connect("127.0.0.1", smtpListenerPort); assertTrue("first connection taken", smtpProtocol1.isConnected()); // no message there, yet assertNull("no mail received by mail server", queue.getLastMail()); String ehlo1 = "abgsfe3rsf.de"; String ehlo2 = "james.apache.org"; String mail = "sender"; String rcpt = "recipient"; smtpProtocol1.sendCommand("ehlo", ehlo1); smtpProtocol1.setSender(mail); smtpProtocol1.addRecipient(rcpt); // this should give a 501 code cause the ehlo not equals reverse of // ip assertEquals("expected error: ehlo not equals reverse of ip", 501, smtpProtocol1.getReplyCode()); smtpProtocol1.sendCommand("ehlo", ehlo2); smtpProtocol1.setSender(mail); smtpProtocol1.addRecipient(rcpt); // ehlo is resolvable. so this should give a 250 code assertEquals("ehlo accepted", 250, smtpProtocol1.getReplyCode()); smtpProtocol1.quit(); } finally { dnsServer.setLocalhostByName(null); } }
From source file:org.apache.james.smtpserver.SMTPServerTest.java
@Test public void testAuthCancel() throws Exception { smtpConfiguration.setAuthorizedAddresses("127.0.0.1/8"); smtpConfiguration.setAuthorizingAnnounce(); init(smtpConfiguration);// w ww . j av a2 s . co m SMTPClient smtpProtocol = new SMTPClient(); smtpProtocol.connect("127.0.0.1", smtpListenerPort); smtpProtocol.sendCommand("ehlo", InetAddress.getLocalHost().toString()); smtpProtocol.sendCommand("AUTH PLAIN"); assertEquals("start auth.", 334, smtpProtocol.getReplyCode()); smtpProtocol.sendCommand("*"); assertEquals("cancel auth.", 501, smtpProtocol.getReplyCode()); smtpProtocol.quit(); }
From source file:org.apache.james.smtpserver.SMTPServerTest.java
@Test public void testAuth() throws Exception { smtpConfiguration.setAuthorizedAddresses("128.0.0.1/8"); smtpConfiguration.setAuthorizingAnnounce(); init(smtpConfiguration);// w w w . ja v a 2 s . c o m SMTPClient smtpProtocol = new SMTPClient(); smtpProtocol.connect("127.0.0.1", smtpListenerPort); smtpProtocol.sendCommand("ehlo", InetAddress.getLocalHost().toString()); String[] capabilityRes = smtpProtocol.getReplyStrings(); List<String> capabilitieslist = new ArrayList<String>(); for (int i = 1; i < capabilityRes.length; i++) { capabilitieslist.add(capabilityRes[i].substring(4)); } assertTrue("anouncing auth required", capabilitieslist.contains("AUTH LOGIN PLAIN")); // is this required or just for compatibility? // assertTrue("anouncing auth required", // capabilitieslist.contains("AUTH=LOGIN PLAIN")); String userName = "test_user_smtp"; String noexistUserName = "noexist_test_user_smtp"; String sender = "test_user_smtp@localhost"; smtpProtocol.sendCommand("AUTH FOO", null); assertEquals("expected error: unrecognized authentication type", 504, smtpProtocol.getReplyCode()); smtpProtocol.setSender(sender); smtpProtocol.addRecipient("mail@sample.com"); assertEquals("expected 530 error", 530, smtpProtocol.getReplyCode()); assertFalse("user not existing", usersRepository.contains(noexistUserName)); smtpProtocol.sendCommand("AUTH PLAIN"); smtpProtocol.sendCommand(Base64.encodeAsString("\0" + noexistUserName + "\0pwd\0")); // smtpProtocol.sendCommand(noexistUserName+"pwd".toCharArray()); assertEquals("expected error", 535, smtpProtocol.getReplyCode()); usersRepository.addUser(userName, "pwd"); smtpProtocol.sendCommand("AUTH PLAIN"); smtpProtocol.sendCommand(Base64.encodeAsString("\0" + userName + "\0wrongpwd\0")); assertEquals("expected error", 535, smtpProtocol.getReplyCode()); smtpProtocol.sendCommand("AUTH PLAIN"); smtpProtocol.sendCommand(Base64.encodeAsString("\0" + userName + "\0pwd\0")); assertEquals("authenticated", 235, smtpProtocol.getReplyCode()); smtpProtocol.sendCommand("AUTH PLAIN"); assertEquals("expected error: User has previously authenticated.", 503, smtpProtocol.getReplyCode()); smtpProtocol.addRecipient("mail@sample.com"); smtpProtocol.sendShortMessageData("Subject: test\r\n\r\nTest body testAuth\r\n"); smtpProtocol.quit(); // mail was propagated by SMTPServer assertNotNull("mail received by mail server", queue.getLastMail()); }
From source file:org.apache.james.smtpserver.SMTPServerTest.java
@Test public void testDNSRBLNotRejectAuthUser() throws Exception { smtpConfiguration.setAuthorizedAddresses("192.168.0.1/32"); smtpConfiguration.setAuthorizingAnnounce(); smtpConfiguration.useRBL(true);//from www . j ava2 s. c om init(smtpConfiguration); dnsServer.setLocalhostByName(InetAddress.getByName("127.0.0.1")); SMTPClient smtpProtocol = new SMTPClient(); smtpProtocol.connect("127.0.0.1", smtpListenerPort); smtpProtocol.sendCommand("ehlo", InetAddress.getLocalHost().toString()); String[] capabilityRes = smtpProtocol.getReplyStrings(); List<String> capabilitieslist = new ArrayList<String>(); for (int i = 1; i < capabilityRes.length; i++) { capabilitieslist.add(capabilityRes[i].substring(4)); } assertTrue("anouncing auth required", capabilitieslist.contains("AUTH LOGIN PLAIN")); // is this required or just for compatibility? assertTrue("anouncing // auth required", capabilitieslist.contains("AUTH=LOGIN PLAIN")); String userName = "test_user_smtp"; String sender = "test_user_smtp@localhost"; smtpProtocol.setSender(sender); usersRepository.addUser(userName, "pwd"); smtpProtocol.sendCommand("AUTH PLAIN"); smtpProtocol.sendCommand(Base64.encodeAsString("\0" + userName + "\0pwd\0")); assertEquals("authenticated", 235, smtpProtocol.getReplyCode()); smtpProtocol.addRecipient("mail@sample.com"); assertEquals("authenticated.. not reject", 250, smtpProtocol.getReplyCode()); smtpProtocol.sendShortMessageData("Subject: test\r\n\r\nTest body testDNSRBLNotRejectAuthUser\r\n"); smtpProtocol.quit(); // mail was propagated by SMTPServer assertNotNull("mail received by mail server", queue.getLastMail()); }
From source file:org.apache.james.smtpserver.SMTPServerTest.java
@Test public void testDNSRBLRejectWorks() throws Exception { smtpConfiguration.setAuthorizedAddresses("192.168.0.1/32"); smtpConfiguration.useRBL(true);/*w ww. j ava 2 s . c om*/ init(smtpConfiguration); dnsServer.setLocalhostByName(InetAddress.getByName("127.0.0.1")); SMTPClient smtpProtocol = new SMTPClient(); smtpProtocol.connect("127.0.0.1", smtpListenerPort); smtpProtocol.sendCommand("ehlo", InetAddress.getLocalHost().toString()); String sender = "test_user_smtp@localhost"; smtpProtocol.setSender(sender); smtpProtocol.addRecipient("mail@sample.com"); assertEquals("reject", 554, smtpProtocol.getReplyCode()); smtpProtocol.sendShortMessageData("Subject: test\r\n\r\nTest body testDNSRBLRejectWorks\r\n"); smtpProtocol.quit(); // mail was rejected by SMTPServer assertNull("mail reject by mail server", queue.getLastMail()); }
From source file:org.apache.james.smtpserver.SMTPServerTest.java
@Test public void testAddressBracketsEnforcementDisabled() throws Exception { smtpConfiguration.setAddressBracketsEnforcement(false); init(smtpConfiguration);/*from w w w . ja va 2s. c o m*/ SMTPClient smtpProtocol = new SMTPClient(); smtpProtocol.connect("127.0.0.1", smtpListenerPort); smtpProtocol.sendCommand("ehlo", InetAddress.getLocalHost().toString()); smtpProtocol.sendCommand("mail from:", "test@localhost"); assertEquals("accept", 250, smtpProtocol.getReplyCode()); smtpProtocol.sendCommand("rcpt to:", "mail@sample.com"); assertEquals("accept", 250, smtpProtocol.getReplyCode()); smtpProtocol.quit(); smtpProtocol.connect("127.0.0.1", smtpListenerPort); smtpProtocol.sendCommand("ehlo", InetAddress.getLocalHost().toString()); smtpProtocol.sendCommand("mail from:", "<test@localhost>"); assertEquals("accept", 250, smtpProtocol.getReplyCode()); smtpProtocol.sendCommand("rcpt to:", "<mail@sample.com>"); assertEquals("accept", 250, smtpProtocol.getReplyCode()); smtpProtocol.quit(); }
From source file:org.apache.james.smtpserver.SMTPServerTest.java
@Test public void testAddressBracketsEnforcementEnabled() throws Exception { init(smtpConfiguration);//from ww w. j av a 2s .c o m SMTPClient smtpProtocol = new SMTPClient(); smtpProtocol.connect("127.0.0.1", smtpListenerPort); smtpProtocol.sendCommand("ehlo", InetAddress.getLocalHost().toString()); smtpProtocol.sendCommand("mail from:", "test@localhost"); assertEquals("reject", 501, smtpProtocol.getReplyCode()); smtpProtocol.sendCommand("mail from:", "<test@localhost>"); assertEquals("accept", 250, smtpProtocol.getReplyCode()); smtpProtocol.sendCommand("rcpt to:", "mail@sample.com"); assertEquals("reject", 501, smtpProtocol.getReplyCode()); smtpProtocol.sendCommand("rcpt to:", "<mail@sample.com>"); assertEquals("accept", 250, smtpProtocol.getReplyCode()); smtpProtocol.quit(); }