? hudson/main/war/resources/help/tasks/mailer/smtp-use-ssl.html Index: hudson/main/core/src/main/java/hudson/tasks/Mailer.java =================================================================== RCS file: /cvs/hudson/hudson/main/core/src/main/java/hudson/tasks/Mailer.java,v retrieving revision 1.18 diff -u -r1.18 Mailer.java --- hudson/main/core/src/main/java/hudson/tasks/Mailer.java 7 Feb 2007 02:57:25 -0000 1.18 +++ hudson/main/core/src/main/java/hudson/tasks/Mailer.java 22 Mar 2007 05:46:01 -0000 @@ -111,6 +111,12 @@ * which is usually localhost. */ private String smtpHost; + + /** + * If true use SSL on port 465 (standard SMTPS). + */ + private Boolean useSsl; + public DescriptorImpl() { super(Mailer.class); @@ -146,7 +152,23 @@ Properties props = new Properties(System.getProperties()); if(smtpHost!=null) props.put("mail.smtp.host",smtpHost); - + if (useSsl) { + /* This allows the user to override settings by setting system properties but + * also allows us to use the default SMTPs port of 465 if no port is already set. + * It would be cleaner to use smtps, but that's done by calling session.getTransport()... + * and thats done in mail sender, and it would be a bit of a hack to get it all to + * coordinate, and we can make it work through setting mail.smtp properties. + */ + props.put("mail.smtp.auth","true"); + if (props.getProperty("mail.smtp.socketFactory.port") == null) { + props.put("mail.smtp.port", "465"); + props.put("mail.smtp.socketFactory.port", "465"); + } + if (props.getProperty("mail.smtp.socketFactory.class") == null) { + props.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory"); + } + props.put("mail.smtp.socketFactory.fallback", "false"); + } return Session.getInstance(props,getAuthenticator()); } @@ -176,7 +198,7 @@ } else { smtpAuthUsername = smtpAuthPassword = null; } - + useSsl = req.getParameter("mailer_smtp_use_ssl")!=null; save(); return super.configure(req); } @@ -206,6 +228,10 @@ public String getSmtpAuthPassword() { return smtpAuthPassword; + } + + public Boolean getUseSsl() { + return useSsl; } public Publisher newInstance(StaplerRequest req) { Index: hudson/main/core/src/main/resources/hudson/tasks/Mailer/global.jelly =================================================================== RCS file: /cvs/hudson/hudson/main/core/src/main/resources/hudson/tasks/Mailer/global.jelly,v retrieving revision 1.2 diff -u -r1.2 global.jelly --- hudson/main/core/src/main/resources/hudson/tasks/Mailer/global.jelly 10 Mar 2007 22:43:44 -0000 1.2 +++ hudson/main/core/src/main/resources/hudson/tasks/Mailer/global.jelly 22 Mar 2007 03:54:25 -0000 @@ -5,6 +5,10 @@ + + +