msgsend sample Program with JavaMail 1.5.4

Q

What is the msgsend.java in javamail-samples.zip? I downloaded it together with javax.mail-1.5.4.jar.

✍: FYIcenter.com

A

msgsend.java in javamail-samples.zip is a sample program that sends out a simple text email message through a SMTP server.

If you downloaded and installed javamail-samples.zip together with javax.mail-1.5.4.jar, folderlist.java is located at \local\javamail-1.5.4\javamail-samples\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.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
   msgsend -d -M smtp.junkmail.com john@yahoo.com

To: john@yahoo.com
Subject: Testing SMTP with JavaMail 1.5.4
DEBUG: setDebug: JavaMail version 1.5.4
Hi there!
^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
com.sun.mail.util.MailConnectException: Couldn't connect to host, port: smtp.jun
kmail.com, 25; timeout -1;
  nested exception is:
        java.net.UnknownHostException: smtp.junkmail.com
        at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2054)
        at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:69
7)
        at javax.mail.Service.connect(Service.java:364)
        at javax.mail.Service.connect(Service.java:245)
        at javax.mail.Service.connect(Service.java:194)
        at javax.mail.Transport.send0(Transport.java:253)
        at javax.mail.Transport.send(Transport.java:124)
        at msgsend.main(msgsend.java:188)

The output shows that:

  • The javax.mail-1.5.4.jar contains JavaMail API classes like javax.mail.Service.
  • The javax.mail-1.5.4.jar contains SMTP implementation classes like com.sun.mail.smtp.SMTPTransport.protocolConnect.
  • 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 1.5.4 with Gmail SMTP Server

Run folderlist.java 1.5.4 with Gmail SSL POP3

Download and Install JavaMail Library

⇑⇑ FAQ for JavaMail

2016-01-13, 2744🔥, 0💬