A simple Java email program in Eclipse

I want to create a simple program where you can send an email from the command line ... I found this tutorial: http://www.tutorialspoint.com/java/java_sending_email.htm 'however it doesn't download. So where can I get JavaMail API and Java Activation Framework (JAF) and how would I put it in my classpath.

Basically I'm looking for someone to break it down and show how I can create a mailer.

Im using Eclipse luna.

-2


source to share


2 answers


Take a look at this example. This example just sends one attachment as mail. The content of the attachment quiz.txt

looks like this:

What is the Capital of India?/New Delhi
Where is the Taj Mahal?/Agra

      

Here is the file SendMailExample.java

:

import java.util.*;
import javax.activation.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;

public class SendMailExample {

    private String from;
    private String to;
    private String subject;
    private String messageBody;
    private String fileName;
    private String host;

    private Properties properties;

    private MimeMessage message;
    private BodyPart messageBodyPart;
    private Multipart multipart;

    private Authenticator authenticator;

    public SendMailExample () {
        from = "sender@gmail.com";
        to = "recipient@gmail.com";
        subject = "Subject Testing";
        messageBody = "<html><body><h1>HAVE FAITH, AND STAY" +
                    " CALM :-) I AM WITH YOU, OKAY :-)</h1></body></html>";
        fileName = "quiz.txt";
        host = "smtp.gmail.com";

        authenticator = new SMTPAuthenticator ();
        properties = System.getProperties ();
        properties.put ( "mail.smtp.host", host );
        properties.put ( "mail.smtp.starttls.enable", "true" );
        properties.put ( "mail.smtp.port", "587" );
        properties.put ( "mail.smtp.auth", "true" );
    }

    private void sendMail ( String from, String to,
                    String subject, String messageBody, String fileName ) {
        try {
            Session session = Session.getDefaultInstance ( properties, authenticator );
            message = new MimeMessage ( session );
            message.setFrom ( new InternetAddress ( from ) );
            message.addRecipient ( Message.RecipientType.TO,
                                new InternetAddress ( to ) );
            message.setSubject ( subject );

            multipart = new MimeMultipart ();
            messageBodyPart = new MimeBodyPart ();
            messageBodyPart.setContent ( messageBody, "text/html" );
            multipart.addBodyPart ( messageBodyPart );

            messageBodyPart = new MimeBodyPart ();
            DataSource source = new FileDataSource ( fileName );
            messageBodyPart.setDataHandler ( new DataHandler ( source ) );
            messageBodyPart.setFileName ( fileName );
            multipart.addBodyPart ( messageBodyPart );

            message.setContent ( multipart );

            Transport.send ( message );
            System.out.println ( "Message send successfully...." );
        } catch ( Exception me ) {
            me.printStackTrace ();
        }
    } 

    private void performTask () {
        sendMail ( from, to, subject, messageBody, fileName );
    }

    public static void main ( String[] args ) {
        new SendMailExample ().performTask ();
    }
}

/**
  * SimpleAuthenticator is used to do simple authentication
  * when the SMTP server requires it.
  */

class SMTPAuthenticator extends Authenticator {

    private static final String SMTP_AUTH_USER = "example@gmail.com";
    private static final String SMTP_AUTH_PASSWORD = "somepassword";

    public PasswordAuthentication getPasswordAuthentication () {
        String username = SMTP_AUTH_USER;
        String password = SMTP_AUTH_PASSWORD;

        return new PasswordAuthentication( username,  password );
    }
}

      

You just needed the mail.jar file .



To compile, just write ( mail.jar

present in C: \ install \ java \ mail \ mail.jar` folder):

javac -classpath .;C:\install\java\mail\mail.jar SendMailExample.java

      

To run, write:

java -classpath .; C: \ install \ java \ mail \ mail.jar SendMailExample

This will do :-)

+2


source


Take a look at this Commons Email library , it will make your task easier.



0


source







All Articles