msgsend Demo Program in JavaMail 1.4.7

Q

What is the msgsend.java in javamail1_4_7.zip?

✍: FYIcenter.com

A

msgsend.java in javamail1_4_7.zip is a demo program that sends out a simple text email message through a SMTP server.

msgsend.java is located at \local\javamail-1.4.7\demo\msgsend.java. Below is the usage description of msgsend.java:

Description:
  Send a simple text message. Optionally saves a copy
  of the outgoing message in a folder (record-folder).

  Most parameters to this program are optional. When
  the program is run, it interactively asks for
  the "To" and "Subject" fields if not already available.
  Then the program expects the body of the message.
  After you type in the body, hit Ctrl-D on Unix
  systems or Ctrl-Z on Windows systems to send
  the message.

Usage:
  java msgsend -L <store-url> -T <protocol> -H <host> -U <user>
    -P <passwd> -s <subject> -o <from> -c <cc> -b <bcc>
    -f <record> -M <smtphost> [-d] <to>

Options:

   -L <store-url> : URL of the store for the record-folder
   -T <protocol> : If <store-url> is not present, this indicates
      the store protocol for the record-folder.
   -H <host>  : If <store-url> is not present, this indicates
      the hostname for the record-folder.
   -U <user>  : If <store-url> is not present, this indicates
      the username for the record-folder.
   -P <passwd>  : If <store-url> is not present, this indicates
      the password for the record-folder.
   -f <record>  : name of record-folder.
   -M <smtphost> : Host name of SMTP server.  Defaults to "localhost"
      which often works on UNIX but rarely on Windows.
   -s <subject>  : Subject of message to be sent
   -o <from>  : From address of message to be sent
   -c <cc>  : Cc address of message to be sent
   -b <bcc>  : Bcc address of message to be sent
   -d    : Turn on session debugging.
   -a <file>  : Include file as an attachment with the message

   Argument:

   <to>      : To address of message to be sent

Here is an execution session of msgsend.java:

fyicenter>cd \local\javamail-1.4.7\demo

local\javamail-1.4.7\demo>java -version
java version "1.8.0_45"

local\javamail-1.4.7\demo>javac -cp ..\mail.jar msgsend.java

local\javamail-1.4.7\demo>java -cp .;..\mail.jar msgsend
   -d -M smtp.junkmail.com john@yahoo.com
To: john@yahoo.com
Subject: Test
DEBUG: setDebug: JavaMail version 1.4.7
Testing
.
^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.junkmail.com", port 25, isSSL false
javax.mail.MessagingException: Could not connect to SMTP host: smtp.mail.com, po
rt: 25;
  nested exception is:
        java.net.ConnectException: Connection timed out: connect
        at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1961)
        at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:65
4)
        at javax.mail.Service.connect(Service.java:295)
        at javax.mail.Service.connect(Service.java:176)
        at javax.mail.Service.connect(Service.java:125)
        at javax.mail.Transport.send0(Transport.java:194)
        at javax.mail.Transport.send(Transport.java:124)
        at msgsend.main(msgsend.java:188)

The output shows that:

  • The mail.jar contains JavaMail API classes like javax.mail.Transport.
  • The mail.jar contains SMTP implementation classes like com.sun.mail.smtp.SMTPTransport.openServer.
  • msgsend.java takes the email message body from the standard input. we need to press Ctrl-Z to end the input stream.
  • The connection exception is expected, because smtp.junkmail.com is not valid SMTP server.

 

Run msgsend.java with Gmail SMTP Server

Run folderlist.java with Gmail SSL POP3

Download and Install JavaMail Library

⇑⇑ FAQ for JavaMail

2016-01-25, 2516👍, 0💬