How i send email without authentication using java

33,627

Solution 1

If it is only for testing purposes, you may try Papercut. While it’s running, Papercut automatically picks up e-mail sent to the standard SMTP port (25) on any IP address. You just send mail from your application and switch to Papercut to review it.

Papercut @ github: https://github.com/ChangemakerStudios/Papercut/releases

import java.util.Date;
import java.util.Properties;

import javax.mail.Message.RecipientType;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class SendMail {

    public static void main(String[] args) throws Exception {
        Properties props = new Properties();
        props.put("mail.smtp.host", "127.0.0.1");
        props.put("mail.smtp.port", "25");
        props.put("mail.debug", "true");
        Session session = Session.getDefaultInstance(props);
        MimeMessage message = new MimeMessage(session);
        message.setFrom(new InternetAddress("[email protected]"));
        message.setRecipient(RecipientType.TO, new InternetAddress("[email protected]"));
        message.setSubject("Notification");
        message.setText("Successful!", "UTF-8"); // as "text/plain"
        message.setSentDate(new Date());
        Transport.send(message);
    }

}

Solution 2

import java.util.*;
import javax.mail.*;

public class SimpleEmail {

    public static void main(String[] args) {
        System.out.println("SimpleEmail Start");
        String smtpHostServer = "smtp.gmail.com";
        String toEmail = "[email protected]";
        Properties props = System.getProperties();
        props.put("mail.smtp.host", smtpHostServer);
        props.put("mail.smtp.starttls.enable", true);
        props.put("mail.smtp.port", "25");
        Session session = Session.getDefaultInstance(props);
        try {
            MimeMessage msg = new MimeMessage(session);
            msg.addHeader("Content-type", "text/HTML; charset=UTF-8");
            msg.addHeader("format", "flowed");
            msg.addHeader("Content-Transfer-Encoding", "8bit");
            msg.setFrom(new InternetAddress("[email protected]", "NoReply-JD"));
            msg.setReplyTo(InternetAddress.parse("[email protected]", false));
            msg.setSubject("SimpleEmail Testing Subject", "UTF-8");
            msg.setText("SimpleEmail Testing Body", "UTF-8");
            msg.setSentDate(new Date());
            msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(toEmail, false));
            System.out.println("Message is ready");
            Transport.send(msg);
            System.out.println("EMail Sent Successfully!!");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
Share:
33,627
felipe muner
Author by

felipe muner

Updated on February 13, 2020

Comments

  • felipe muner
    felipe muner about 4 years

    I would like to send email without authentication using java. Can someone help me?

    With authentication, I do it as follows:

        public void sendEmail() throws EmailException{
        SimpleEmail email = new SimpleEmail();
        email.setHostName("smtp.gmail.com");
        email.setSmtpPort(465);
        email.addTo("[email protected]", "XXXX");
        email.setFrom("[email protected]","XXXXX");
        email.setSubject("testando . . .");
        email.setMsg("testando 1");
        email.setSSL(true);
        email.setAuthentication("[email protected]", "XXXXX");
        email.send();
    }
    

    I forgot to say that i do not have a provider. i need an provider finally, i have emailFrom Subject and Message, and need send this email how?

  • felipe muner
    felipe muner about 10 years
    I forgot to say that i do not have a provider. i need an provider finally, i have emailFrom Subject and Message, and need send this email how?
  • Adriano
    Adriano about 10 years
    You saw the link at the end of the answer? I do not quite understand your doubts here in comment?
  • Admin
    Admin about 4 years
    Facing An Issue com.sun.mail.smtp.SMTPSendFailedException: 530-5.7.0 Authentication Required. Learn more at 530 5.7.0 support.google.com/mail/?p=WantAuthError o6sm1435614pgg.37 - gsmtp at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTranspo‌​rt.java:2249) at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:‌​1740) at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.ja‌​va:1239) at javax.mail.Transport.send0(Transport.java:255) at javax.mail.Transport.send(Transport.java:124) at com.necti.smsemail.SimpleEmail.main(SimpleEmail.java:59)
  • sskumar86
    sskumar86 over 3 years
    If I want to use sendgrid apikey ,how I should send it ?
  • Akito
    Akito almost 2 years
    The Github link is still working, but the website link to Papercut is down.