Martin, Yes I use smtp props that are similar to what you have shared. Kindly see my initial post for the smtp properties used by me. I may sound stupid but the same piece of code runs fine when using wicket-1.4.x. And I use the following wicket related dependencies:
- wicket - wicket-extensions - wicket-ioc - wicket-spring - wicket-datetime - wicketstuff-annotation - wicketstuff-objectautocomplete - wiquery-jquery-ui All of them use the version 1.5.7. (Yes some of them don't belong to the wicket project at all but they depend on wicket-1.5.x) Is there a possibility of a dependency conflict? NOTE: I found that wicket-ioc depends on "cglib". But even when I excluded it the problem persists. On Tue, Aug 14, 2012 at 2:27 PM, Martin Grigorov <mgrigo...@apache.org>wrote: > Hi, > > I don't think this is anyhow related to Wicket. > Here are the GMail SMTP related props I use successfully: > > mail.server.host=smtp.gmail.com > mail.server.port=587 > mail.server.username=my.em...@gmail.com > mail.server.password=my-passwd > mail.server.starttls.enable=true > > You may also check the docs of SMTPAppender in Logback. There are > examples for configuring it with GMail. I believe the problem is in > these settings. > > On Tue, Aug 14, 2012 at 5:34 AM, James Eliyezar <ja...@mcruncher.com> > wrote: > > Greetings to all of you. > > > > We recently upgraded our application to Wicket 1.5. > > However, after upgrading we had problems sending email using SSL from our > > application. > > This may not be related to wicket at all but I promise we didn't change > any > > dependencies other than wicket's. > > What amuses me is that it works as expected in our older versions which > > still use Wicket 1.4.x. > > Both the older version and the current version were run using the same > JRE. > > > > Here's the code that sends email: > > > > <pre> > > public class MailSenderTask implements Runnable > > { > > private Properties smtpProperties; > > private EmailMessage message; > > private static final Logger logger = > > LoggerFactory.getLogger(MailSenderTask.class); > > > > public MailSenderTask(Properties smtpProperties, EmailMessage > message) > > { > > this.smtpProperties = smtpProperties; > > this.message = message; > > } > > > > public synchronized void sendMail() throws Exception > > { > > try { > > if (addSSlProvider()) { > > logger.info("Adding ssl provider"); > > Security.addProvider(new > > com.sun.net.ssl.internal.ssl.Provider()); > > } else { > > logger.info("Using plain text connection as ssl/tls is > not > > enabled"); > > } > > Session session = createSession(); > > MimeMessage mimeMessage = new MimeMessage(session); > > mimeMessage.setSender(new > InternetAddress(message.getSender())); > > mimeMessage.setSubject(message.getSubject()); > > > > if (message.getRecipients().indexOf(',') > 0) { > > mimeMessage.setRecipients(Message.RecipientType.TO, > > InternetAddress.parse(message.getRecipients())); > > } else { > > mimeMessage.setRecipient(Message.RecipientType.TO, new > > InternetAddress(message.getRecipients())); > > } > > > > MimeBodyPart bodyPart = new MimeBodyPart(); > > bodyPart.setContent(message.getBody(), "text/html"); > > > > Multipart multipart = new MimeMultipart(); > > multipart.addBodyPart(bodyPart); > > > > if (message.getAttachments() != null && > > message.getAttachments().length > 0) { > > for (File file : message.getAttachments()) { > > logger.debug("Adding {} as an attachment", file); > > MimeBodyPart attachmentPart = new MimeBodyPart(); > > attachmentPart.attachFile(file); > > multipart.addBodyPart(attachmentPart); > > } > > } > > > > mimeMessage.setContent(multipart); > > > > logger.info("Sending mail..."); > > Transport.send(mimeMessage); > > logger.info("Mail sent to {}", message.getRecipients()); > > } catch (Exception ex) { > > throw new EmailException("Error occurred while sending mail", > > ex); > > } > > } > > > > private boolean addSSlProvider() > > { > > String sslEnabledProperty = > > smtpProperties.getProperty("mail.smtp.starttls.enable"); > > if (StringUtils.isNotEmpty(sslEnabledProperty)) { > > return Boolean.parseBoolean(sslEnabledProperty); > > } > > return false; > > } > > > > private Session createSession() > > { > > Session session = null; > > if > > (Boolean.parseBoolean(smtpProperties.getProperty("mail.smtp.auth"))) { > > logger.info("Creating session with authentication"); > > session = createSessionWithAuthentication(smtpProperties); > > } else { > > logger.info("Creating default session"); > > session = createDefaultSession(smtpProperties); > > } > > return session; > > } > > > > private Session createDefaultSession(final Properties smtpProperties) > > { > > return Session.getInstance(smtpProperties); > > } > > > > private Session createSessionWithAuthentication(final Properties > > smtpProperties) > > { > > return Session.getInstance(smtpProperties, > > new Authenticator() > > { > > @Override > > protected PasswordAuthentication > > getPasswordAuthentication() > > { > > return new > > PasswordAuthentication(smtpProperties.getProperty("smtp.username"), > > > > smtpProperties.getProperty("smtp.password")); > > } > > }); > > } > > > > public void run() > > { > > if (smtpProperties != null && message != null) { > > try { > > sendMail(); > > } catch (Exception ex) { > > throw new EmailException("Error", ex); > > } > > } > > } > > } > > </pre> > > > > These are the SMTP properties that were set: > > > > <pre> > > mail.smtp.socketFactory.fallback:false > > mail.smtp.socketFactory.class:javax.net.ssl.SSLSocketFactory > > mail.transport.protocol:smtp > > mail.smtp.connectiontimeout:10000 > > mail.smtp.host:smtp.gmail.com > > mail.smtp.timeout:10000 > > mail.smtp.starttls.enable:true > > mail.smtp.port:465 > > mail.smtp.auth:true > > mail.smtp.socketFactory.port:465 > > mail.smtp.quitwait:false > > smtp.username:f...@gmail.com > > smtp.password: bar > > </pre> > > > > This is the exception thrown: > > > > <pre> > > Caused by: javax.mail.MessagingException: Could not connect to SMTP host: > > smtp.gmail.com, port: 465 > > at > com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1934) > > ~[mail-1.4.4.jar:1.4.4] > > at > > com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:638) > > ~[mail-1.4.4.jar:1.4.4] > > at javax.mail.Service.connect(Service.java:297) ~[mail-1.4.jar:1.4] > > at javax.mail.Service.connect(Service.java:156) ~[mail-1.4.jar:1.4] > > at javax.mail.Service.connect(Service.java:105) ~[mail-1.4.jar:1.4] > > at javax.mail.Transport.send0(Transport.java:168) ~[mail-1.4.jar:1.4] > > at javax.mail.Transport.send(Transport.java:98) ~[mail-1.4.jar:1.4] > > at > > > com.mcruncher.core.module.email.util.MailSenderTask.sendMail(MailSenderTask.java:75) > > ~[MailSenderTask.class:2.7.0-SNAPSHOT] > > ... 56 common frames omitted > > Caused by: javax.net.ssl.SSLException: java.lang.RuntimeException: > > Unexpected error: java.security.InvalidAlgorithmParameterException: the > > trustAnchors parameter must be non-empty > > at > com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:190) > > ~[na:1.6] > > at > > com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1731) > > ~[na:1.6] > > at > > com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1692) > > ~[na:1.6] > > at > > > com.sun.net.ssl.internal.ssl.SSLSocketImpl.handleException(SSLSocketImpl.java:1675) > > ~[na:1.6] > > at > > > com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1204) > > ~[na:1.6] > > at > > > com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1181) > > ~[na:1.6] > > at > > > com.sun.mail.util.SocketFetcher.configureSSLSocket(SocketFetcher.java:507) > > ~[mail-1.4.4.jar:1.4] > > at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:238) > > ~[mail-1.4.4.jar:1.4] > > at > com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1900) > > ~[mail-1.4.4.jar:1.4.4] > > ... 63 common frames omitted > > Caused by: java.lang.RuntimeException: Unexpected error: > > java.security.InvalidAlgorithmParameterException: the trustAnchors > > parameter must be non-empty > > at sun.security.validator.PKIXValidator.<init>(PKIXValidator.java:57) > > ~[na:1.6.0_33] > > at sun.security.validator.Validator.getInstance(Validator.java:161) > > ~[na:1.6.0_33] > > at > > > com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.getValidator(X509TrustManagerImpl.java:108) > > ~[na:1.6] > > at > > > com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:204) > > ~[na:1.6] > > at > > > com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:249) > > ~[na:1.6] > > at > > > com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1185) > > ~[na:1.6] > > at > > > com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:136) > > ~[na:1.6] > > at > > com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:593) > > ~[na:1.6] > > at > > > com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:529) > > ~[na:1.6] > > at > > > com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:925) > > ~[na:1.6] > > at > > > com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1170) > > ~[na:1.6] > > at > > > com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1197) > > ~[na:1.6] > > ... 67 common frames omitted > > Caused by: java.security.InvalidAlgorithmParameterException: the > > trustAnchors parameter must be non-empty > > at > > > java.security.cert.PKIXParameters.setTrustAnchors(PKIXParameters.java:183) > > ~[na:1.6.0_33] > > at java.security.cert.PKIXParameters.<init>(PKIXParameters.java:103) > > ~[na:1.6.0_33] > > at > > > java.security.cert.PKIXBuilderParameters.<init>(PKIXBuilderParameters.java:87) > > ~[na:1.6.0_33] > > at sun.security.validator.PKIXValidator.<init>(PKIXValidator.java:55) > > ~[na:1.6.0_33] > > ... 78 common frames omitted > > </pre> > > > > Eagerly awaiting fellow wicket users' help.... > > > > -- > > Thanks & regards > > James Selvakumar > > mcruncher.com > > > > -- > Martin Grigorov > jWeekend > Training, Consulting, Development > http://jWeekend.com > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > For additional commands, e-mail: users-h...@wicket.apache.org > > -- Thanks & regards James Selvakumar mcruncher.com