Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Java send email, Getting error

Tags:

java

I wrote a program to send emails, but I don't know why I am getting an error.

Pleas help me.

Here is my code:

import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;



public class EmailTest {

    static Properties mailServerProperties;
    static Session getMailSession;
    static MimeMessage generateMailMessage;

    public static void main(String args[]) throws AddressException, MessagingException {
        generateAndSendEmail();
        System.out.println("\n\n ===> Your Java Program has just sent an Email successfully. Check your email..");
    }

    public static void generateAndSendEmail() throws AddressException, MessagingException {


        System.out.println("\n 1st ===> setup Mail Server Properties..");
        mailServerProperties = System.getProperties();
        mailServerProperties.put("mail.smtps.host", "smtpout.secureserver.net");
        mailServerProperties.put("mail.smtp.auth", "true");

        System.out.println("Mail Server Properties have been setup successfully..");


        System.out.println("\n\n 2nd ===> get Mail Session..");
        getMailSession = Session.getDefaultInstance(mailServerProperties, null);
        generateMailMessage = new MimeMessage(getMailSession);
        generateMailMessage.addRecipient(Message.RecipientType.TO, new InternetAddress("[email protected]"));
        generateMailMessage.addRecipient(Message.RecipientType.CC, new InternetAddress("[email protected]"));
        generateMailMessage.setSubject("TEST");
        String emailBody = "TEST BODY" + "<br><br> DFKSDL, <br>JDSKJFDS";
        generateMailMessage.setContent(emailBody, "text/html");
        System.out.println("Mail Session has been created successfully..");


        System.out.println("\n\n 3rd ===> Get Session and Send mail");
        Transport transport = getMailSession.getTransport("smtp");
        // Enter your correct gmail UserID and Password
        transport.connect("smtpout.secureserver.net", "[email protected]", "password");
        transport.sendMessage(generateMailMessage, generateMailMessage.getAllRecipients());
        transport.close();
    }
}

I am getting an error. The username and password and everything are correct, but I am getting this error:

 1st ===> setup Mail Server Properties..
Mail Server Properties have been setup successfully..


 2nd ===> get Mail Session..
Mail Session has been created successfully..


 3rd ===> Get Session and Send mail
Exception in thread "main" com.sun.mail.smtp.SMTPSendFailedException: 550 <username@partik-pc> Sender Rejected - MAIL FROM must be a valid domain.
;
  nested exception is:
    com.sun.mail.smtp.SMTPSenderFailedException: 550 <username@partik-pc> Sender Rejected - MAIL FROM must be a valid domain.

    at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:2108)
    at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:1609)
    at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1117)
    at EmailTest.generateAndSendEmail(EmailTest.java:50)
    at EmailTest.main(EmailTest.java:20)
Caused by: com.sun.mail.smtp.SMTPSenderFailedException: 550 <username@partik-pc> Sender Rejected - MAIL FROM must be a valid domain.

    at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:1616)
    ... 3 more

I don't know why, username@partik-pc it puts my PC name after the username!! I don't know why. Also, how can I attach a file? Please help me. Thanks in advance!

like image 685
user2704140 Avatar asked Feb 03 '26 18:02

user2704140


1 Answers

You need to add the mail.from property with a valid email address that is accepted by your mail server:

mailServerProperties.put("mail.from", "[email protected]");

Or you need to explicitly set the from address:

generateMailMessage.setFrom("[email protected]");

See also the example on the api of JavaMail

like image 132
Mark Rotteveel Avatar answered Feb 06 '26 06:02

Mark Rotteveel