Java wysyłanie wiadomości Email

0

Witam
Plik .jar dodałem jako bibliotekę w intelji. Próbuje uruchomić ale pojawia się taki błąd.!Bez tytułu.png

package Main;


import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;

public class Main {
    public static void main(String[] args) {
        String to = "xxx";
        // Sender's email ID needs to be mentioned
        String from = "yyy";
        // Assuming you are sending email from localhost
        String host = "aaa";
        // Get system properties
        Properties properties = System.getProperties();
        // Setup mail server
        properties.setProperty("mail.smtp.host", host);
        // Get the default Session object.
        Session session = Session.getDefaultInstance(properties);
        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("This is the Subject Line!");
            // Now set the actual message
            message.setText("This is actual message");
            // Send message
            Transport.send(message);
            System.out.println("Sent message successfully....");
        } catch (MessagingException mex) {
            mex.printStackTrace();
        }

    }
}

3

Ta paczka javax.activation wyleciała w JDK 9 więc nie odpalisz tego 15. Moja rada: nie używaj rzeczy które są starsze od ciebie, i jakichs shady jarów z d**y.

0

@Shalom:A więc w jaki sposób mam rozwiązać problem ?

1

Nie wiem co konkretnie chcesz zrobić. Możesz:

  1. Użyć starej javy, jakaś 8 pewnie ten kod łyknie jak młody pelikan
  2. Użyć jakiejś aktualnej libki do wysyłania maili
2

Pan na butkampie tak kazal robic:

import org.apache.commons.mail.DefaultAuthenticator;
import org.apache.commons.mail.Email;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.SimpleEmail;

class SendEmail {
    public static void main(String[] args) throws EmailException {
        Email email = new SimpleEmail();
        email.setHostName("poczta.interia.pl");
        email.setSmtpPort(465);
        email.setAuthenticator(new DefaultAuthenticator("TWOJA_NAZWA", "TWOJE_HASLO"));
        email.setSSLOnConnect(true);
        email.setFrom("[email protected]");
        email.setSubject("Siemaa");
        email.setMsg("Witam, robię super kurs programowania!");
        email.addTo("ADRES_EMAIL_GDZIE_WYSLAC");
        System.out.println("Rozpoczęto wysyłanie wiadomości email");
        email.send();
        System.out.println("Wiadomość wysłana");
    }
}

https://commons.apache.org/proper/commons-email/userguide.html

0

@p_agon: "email.setAuthenticator(new DefaultAuthenticator("TWOJA_NAZWA", "TWOJE_HASLO"));" problem jest z tą linijką.

0

@plugan300: Dalej wyrzuca te błędy co wyżej w załączonym jpg

0

@plugan300: z linią już nie ale to samo wali to co na załączniku

0

@Shalom:

@plugan300: 123.png

@plugan300:

4

ale to samo wali to co na załączniku

Czy ty umiesz czytać? o_O Przecież to zupełnie inny błąd. Tak, znów ClassDefNotFound ale zupełnie inna klasa (!). Sugeruje żebyś poważnie zastanowił się nad tym czy programowanie jest dla ciebie, skoro tak bardzo przykładasz się do szczegółów. Google sugeruje że javax.mail to paczka z JEE, więc musiałbyś znów dodać jakąś zależność żeby to zadziałało. Byłoby dużo prościej gdybyś jak normalny człowiek ogarnął te zależności mavenem albo gradlem a nie sciągał jary jak zwierze. Bo wtedy wiedziałbyś że ta libka commons-email ma dodatkowe zależności, co widać np. na https://search.maven.org/artifact/org.apache.commons/commons-email/1.5/jar

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

(reszta zależności ma scope test więc są nieistotne). I widać czemu dostajesz ClassDefNotFound - ściagnąłeś jara który wymaga innego jara jako zalezności (a tenże może wymagać kolejnych...)

Zrób to normalnie mavenem i on sobie te "tranzytywne" zależności ogarnie.

1

@Shalom: Czyli programowanie nie jest dla mnie ? Ok, to oddam książki 4 równowartość 500 zł za darmo wyśle. Namówiłeś mnie żeby zrezygnować, kompletnie się w tym nie łapie.

1

A to w tych książkach zaczyna się naukę programowania przez wysyłanie maili w JEE? Jeśli tak to szybciej na makulaturę te książki.

0

@Saalin: nie no to taka odskocznia od tego co było w książce xD

1

Zaczynasz przygodę i kupujesz książki za 500PLN? Przerobiłeś chociaż jakiś kurs online za darmo/za grosze, żeby zobaczyć czy Ci to przypasuje?

0

@kixe52: ogólnie mavena unikałem wszystko standardowo robiłem. Nie jestem nowicjuszem, zwykłe programowanie ogarniam w 95%, całą obiektówke. Teraz dopiero zacząłem poznawać jak korzysta się z dołączania bibliotek w książce tego nie ma.

1 użytkowników online, w tym zalogowanych: 0, gości: 1