Run msgsend.java 1.5.4 with Gmail SMTP Server

Q

How to run msgsend.java with javax.mail-1.5.4.jar with Gmail using SSL POP3 protocol? I have a valid Gmail email account.

✍: FYIcenter.com

A

msgsend.java in javamail-samples.zip can be used to send out a simple text mail message through Gmail server using SSL SMTP protocol. Here is an execution session of msgsend.java with javax.mail-1.5.4.jar:

fyicenter>cd \local\javamail-1.5.4\javamail-samples

local\javamail-1.5.4\javamail-samples>java -version
java version "1.8.0_45"

local\javamail-1.5.4\javamail-samples>javac -cp .;..\javax.mail-1.5.4.jar
   msgsend.java

local\javamail-1.5.4\javamail-samples>java -cp .;..\javax.mail-1.5.4.jar
   -Dmail.smtp.ssl.enable=true msgsend
   -d -M smtp.gmail.com john@yahoo.com

To: john@yahoo.com
Subject: Test with JavaMail 1.5.4
DEBUG: setDebug: JavaMail version 1.5.4
John, how are you?
^Z
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.s
mtp.SMTPTransport,Oracle]
DEBUG SMTP: useEhlo true, useAuth false
DEBUG SMTP: trying to connect to host "smtp.gmail.com", port 465, isSSL true
220 smtp.gmail.com ESMTP h83sm32129867ywc.6 - gsmtp
DEBUG SMTP: connected to host "smtp.gmail.com", port: 465

EHLO localhost
250-smtp.gmail.com at your service, [71.174.32.174]
250-SIZE 35882577
250-8BITMIME
250-AUTH LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN OAUTHBEARER XOAUTH
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-CHUNKING
250 SMTPUTF8
DEBUG SMTP: Found extension "SIZE", arg "35882577"
DEBUG SMTP: Found extension "8BITMIME", arg ""
DEBUG SMTP: Found extension "AUTH", arg "LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN O
AUTHBEARER XOAUTH"
DEBUG SMTP: Found extension "ENHANCEDSTATUSCODES", arg ""
DEBUG SMTP: Found extension "PIPELINING", arg ""
DEBUG SMTP: Found extension "CHUNKING", arg ""
DEBUG SMTP: Found extension "SMTPUTF8", arg ""
DEBUG SMTP: use8bit false
MAIL FROM:<john@localhost>
530-5.5.1 Authentication Required. Learn more at
530 5.5.1  https://support.google.com/mail/answer/14257 h83sm32129867ywc.6 - gsm
tp
DEBUG SMTP: got response code 530, with response: 530-5.5.1 Authentication Requi
red. Learn more at
530 5.5.1  https://support.google.com/mail/answer/14257 h83sm32129867ywc.6 - gsm
tp

RSET
250 2.1.5 Flushed h83sm32129867ywc.6 - gsmtp
DEBUG SMTP: MessagingException while sending, THROW:
com.sun.mail.smtp.SMTPSendFailedException: 530-5.5.1 Authentication Required. Le
arn more at
530 5.5.1  https://support.google.com/mail/answer/14257 h83sm32129867ywc.6 - gsm
tp

        at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:2
203)
        at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:1694)
        at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1194)
        at javax.mail.Transport.send0(Transport.java:254)
        at javax.mail.Transport.send(Transport.java:124)
        at msgsend.main(msgsend.java:188)
QUIT

The output shows that:

  • The javax.mail-1.5.4.jar contains JavaMail API classes like javax.mail.Transport.
  • The javax.mail-1.5.4.jar contains SMTP implementation classes like com.sun.mail.smtp.SMTPTransport.mailFrom.
  • msgsend.java takes the email message body from the standard input. we need to press Ctrl-Z to end the input stream.
  • JavaMail 1.5.4 supports SSL SMTP protocol.
  • imap.gmail.com server supports SSL SMTP protocol on port 465.
  • JVM "-Dmail.smtp.ssl.enable=true" option is used to turn on SSL.
  • The SMTP send failed exception is expected, because no authentification is provided.

 

Download and Install javamail1_4_7.zip

msgsend sample Program with JavaMail 1.5.4

Download and Install JavaMail Library

⇑⇑ FAQ for JavaMail

2016-01-15, 2123👍, 0💬