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

Reply via email to