Тип метода в сеансе неприменим в аргументах при создании и передаче объекта сеанса - PullRequest
0 голосов
/ 05 августа 2020

Я пытаюсь отправить электронное письмо из проекта java maven. Я следовал примеру с веб-сайта: https://pepipost.com/tutorials/send-email-in-java-using-gmail-smtp/

В моем файле SendEmail. java я иметь код как:

import java.util.Properties;

import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class SendEmail {


public static void main(String[] args) {
    

    // Recipient's email ID needs to be mentioned.
    String to = args[2];

    // Sender's email ID needs to be mentioned
    String from = "example@gmail.com";

    // Assuming you are sending email from through gmails smtp
    String host = "smtp.gmail.com";

    // Get system properties
    Properties properties = System.getProperties();

    // Setup mail server
    properties.put("mail.smtp.host", host);
    properties.put("mail.smtp.port", "465");
    properties.put("mail.smtp.ssl.enable", "true");
    properties.put("mail.smtp.auth", "true");
    
    Session session = Session.getInstance(properties, new javax.mail.Authenticator() {

        protected PasswordAuthentication getPasswordAuthentication() {

            return new PasswordAuthentication("example@gmail.com", "****");

        }

    });

    // Used to debug SMTP issues
    session.setDebug(true);

    try {
        // Create a default MimeMessage object.
        MimeMessage message = new MimeMessage(session);

        // Set From: header field of the header.
        message.setFrom(new InternetAddress(from));

        // Set To: header field of the header.
        message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));

        // Set Subject: header field
        message.setSubject("Welcome email");

        // Now set the actual message
        
     message.setText("This is  message");
        
        String html = "<h1>This is actual message embedded in HTML tags</h1>;
        message.setContent(html, "text/html");

        System.out.println("sending...");
        // Send message
        Transport.send(message);
        System.out.println("Sent message successfully....");
    } catch (MessagingException mex) {
        mex.printStackTrace();
    }

}

 }

Но я получаю сообщение об ошибке: Метод getInstance (java .util.Properties, javax.mail.Authenticator) в типе Session неприменим для аргументов (java .util.Properties, javax.mail.Authenticator)

В моем пом. xml у меня

 <dependency>
    <groupId>com.sun.mail</groupId>
    <artifactId>javax.mail</artifactId>
    <version>1.6.2</version>
  </dependency>

Я не мог понять где Я пошел не так, пожалуйста, помогите мне с этой проблемой.

...