sending mail using external smtp from container

I prepared an app that can send mail through smtp.gmail.com and it works well but, when I run it using docker, I get an error – as it can’t connect to smtp.gmail.com. The function sending mails is:

public void sendEmal(String body, String mailRecipient){
   Properties props = new Properties();
   props.put("mail.transport.protocol", "smtp");
   props.put("mail.smtp.auth", "true");
   props.put("mail.smtp.host", "smtp.gmail.com");
   props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
   props.put("mail.smtp.port", "465");
   try{
        Authenticator auth = new SMTPAuthenticator();
        Session mailSession = Session.getDefaultInstance(props, auth);
        mailSession.setDebug(true);
        Transport transport = mailSession.getTransport();

        MimeMessage message = new MimeMessage(mailSession);
        message.setContent(body, "text/plain");
        message.addRecipient(Message.RecipientType.TO,
        new InternetAddress("mailRecipient"));

        transport.connect();
        transport.sendMessage(message,
        message.getRecipients(Message.RecipientType.TO));
        transport.close();  
    }
    catch(Exception e){
        System.out.println(e);
    }
}

This is the error:

  • Ubuntu docker image doesn't contain any /dev/sdX block devices?
  • Docker - Cannot start Redis Service
  • Docker and Nginx proxy_pass between containers
  • Docker, Nginx and PHP7: ERROR 111 Connection refused while connecting to upstream
  • Docker Elasticsearch Plugin with Request
  • Using netcat to pipe unix socket to tcp socket
  • myapp_thirdInst | DEBUG SMTP: trying to connect to host
    “smtp.gmail.com”, port 465, isSSL false

    myapp_thirdInst | javax.mail.MessagingException: Unknown SMTP host:
    smtp.gmail.com;

    myapp_thirdInst | nested exception is:

    myapp_thirdInst | java.net.UnknownHostException: smtp.gmail.com

    myapp_thirdInst | error sending mail

    It’s the first time I’m playing with docker and after some tries, it continues to fail. I’m kind of lost – could anyone give me a hint to solve this issue?

  • docker service cassandra publish port failed
  • Openshift v3 - update image stream to fetch changes from external docker registry
  • Running ServiceBus in windows docker container
  • Docker Ubuntu Build File Errors
  • Flocker data migration
  • Containerization of OpenStack services with Kubernetes?
  • One Solution collect form web for “sending mail using external smtp from container”

    The first thing you need to do is get DNS working! Test the container DNS first with a shell, get that working and then your SMTP code may work.

    Perhaps you can update your question with information about your DNS configuration

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.