Commons Email
  1. Commons Email
  2. EMAIL-91

Incorrect SMTP Port number shown in error message when an email fails to send due to a blocked port and SSL is used.

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Minor Minor
    • Resolution: Fixed
    • Affects Version/s: 1.0, 1.1, 1.2
    • Fix Version/s: 1.3
    • Labels:
      None
    • Environment:

      Windows XP, JRE 1.6.0_16, JavaMail 1.4.1, Commons Email 1.2 [latest from svn], jaf 1.1.1

      Description

      An incorrect error message is being returned from the email class when a message fails to send due to a blocked port and SSL is specified. Specificaly, the port number in the error message is incorrect; it will show the stmp port that is set on the object (normally 25), when it should be showing the port that was set in the session when the session was created [465 when SSL is used].

      This issue is only visible to the user if the email fails to send because the SSL port is blocked.

      The following code reproduces the issue:
      public void testErrorMessage(){
      HtmlEmail email = new HtmlEmail();
      try

      { email.addTo("abc@d.com"); email.setSubject("Testing Apache Error message "); email.setFrom("abc@d.com"); email.setMsg("Sending through gmail"); email.setSSL(true); email.setHostName("anyhost.com"); email.send(); }

      catch (EmailException e)

      { e.printStackTrace(); }

      }

      If port 465 is blocked, then you wil ge the following stacktrace:

      org.apache.commons.mail.EmailException: Sending the email to the following server failed : anyhost.com:25
      at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1138)
      at org.apache.commons.mail.Email.send(Email.java:1163)
      at EmailTester.testErrorMessage(EmailTester.java:27)
      at EmailTester.main(EmailTester.java:14)
      Caused by: javax.mail.MessagingException: Could not connect to SMTP host: anyhost.com, port: 465;
      nested exception is:
      java.net.ConnectException: Connection refused: connect
      at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1391)
      at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:412)
      at javax.mail.Service.connect(Service.java:288)
      ...

      Note that the port is listed correctly in the inner exception, but it is incorrect in the topmost exception.

      I have fixed this issue in my sandbox, and will attach the patch to this issue.

      1. issue-91a_patch.txt
        3 kB
        Siegfried Goeschl
      2. issue-91_patch.txt
        2 kB
        Kevin Lester

        Issue Links

          Activity

          Kevin Lester created issue -
          Hide
          Kevin Lester added a comment -

          This patch addresses this issue by modifying the getSmtpPort, getSslSmtpPort, and getHostName methods. These methods currently look in the Email object's instance variables to get the port, ssl port, and hostname values. If the values are not set in the instance variables, then it looks for them in the session.

          I have modified these methods to do the lookup in the reverse order: first they look in the session, then they look in the instance variables. So these methods should now return the exact values that were used when the email tried to send.

          This patch was taken against the latest code, and all unit tests pass.

          Show
          Kevin Lester added a comment - This patch addresses this issue by modifying the getSmtpPort, getSslSmtpPort, and getHostName methods. These methods currently look in the Email object's instance variables to get the port, ssl port, and hostname values. If the values are not set in the instance variables, then it looks for them in the session. I have modified these methods to do the lookup in the reverse order: first they look in the session, then they look in the instance variables. So these methods should now return the exact values that were used when the email tried to send. This patch was taken against the latest code, and all unit tests pass.
          Kevin Lester made changes -
          Field Original Value New Value
          Attachment issue-91_patch.txt [ 12424277 ]
          Siegfried Goeschl made changes -
          Assignee Siegfried Goeschl [ sgoeschl ]
          Siegfried Goeschl made changes -
          Comment [ Hi Kevin,

          just looking the patch and would like to keep you in the loop

          +) in Email#getSmtpPort you checked for MAIL_HOST before accessing MAIL_PORT

          +) the MultiPartEmailTest#testAttachmentFileSize and #testAttachmentURLSize fail on Mac OS X (M2 and IntelliJ) with >>>Cannot attach file "Users/siegfriedgoeschl/work/asf/commons/proper/email/trunk/target/test-classes/images/asf_logo_wide.gif"<<< which is entirely correct since there is no leading slash. When adding the slash the tests are passing ]
          Hide
          Siegfried Goeschl added a comment - - edited

          Corrected patch (issue-91a_patch.txt)

          Show
          Siegfried Goeschl added a comment - - edited Corrected patch (issue-91a_patch.txt)
          Siegfried Goeschl made changes -
          Attachment issue-91a_patch.txt [ 12444407 ]
          Siegfried Goeschl made changes -
          Fix Version/s 1.3 [ 12315052 ]
          Hide
          Siegfried Goeschl added a comment -

          Applied the corrected patch and made local tests

          Show
          Siegfried Goeschl added a comment - Applied the corrected patch and made local tests
          Siegfried Goeschl made changes -
          Status Open [ 1 ] Resolved [ 5 ]
          Resolution Fixed [ 1 ]
          Bart Laarhoven made changes -
          Link This issue is related to EMAIL-123 [ EMAIL-123 ]
          Thomas Neidhart made changes -
          Link This issue is duplicated by EMAIL-123 [ EMAIL-123 ]
          Thomas Neidhart made changes -
          Link This issue is related to EMAIL-123 [ EMAIL-123 ]
          Thomas Neidhart made changes -
          Status Resolved [ 5 ] Closed [ 6 ]
          Transition Time In Source Status Execution Times Last Executer Last Execution Date
          Open Open Resolved Resolved
          186d 16h 15m 1 Siegfried Goeschl 13/May/10 18:14
          Resolved Resolved Closed Closed
          973d 22h 32m 1 Thomas Neidhart 11/Jan/13 15:47

            People

            • Assignee:
              Siegfried Goeschl
              Reporter:
              Kevin Lester
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Time Tracking

                Estimated:
                Original Estimate - 24h
                24h
                Remaining:
                Remaining Estimate - 24h
                24h
                Logged:
                Time Spent - Not Specified
                Not Specified

                  Development