Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Matěj Kripner
Tvůrce
Avatar
Matěj Kripner:26.7.2014 18:31

Zdravím,
potřeboval bych mít v mé aplikaci možnost automaticky posílat emaily. Neví někdo, jak v Javě SE poslat email? Předem dík :)

 
Odpovědět
26.7.2014 18:31
Avatar
Atrament
Tvůrce
Avatar
Odpovídá na Matěj Kripner
Atrament:26.7.2014 22:59

Co třeba http://www.oracle.com/…l/index.html ? Nezkoušel jsem to, ale vypadá to, že by to mohlo dělat to co chceš.

 
Nahoru Odpovědět
26.7.2014 22:59
Avatar
Matěj Kripner
Tvůrce
Avatar
Odpovídá na Atrament
Matěj Kripner:28.7.2014 11:03

Díky, to vypadá dobře. Musím si něco stáhnout, nebo je to součást standardních knihoven?

 
Nahoru Odpovědět
28.7.2014 11:03
Avatar
Atrament
Tvůrce
Avatar
Odpovídá na Matěj Kripner
Atrament:28.7.2014 12:44

Bohužel to není součástí SE, takže musíš z https://java.net/…l/pages/Home stáhnout jary které budeš potřebovat a ty si vložit do projektu jako Library. Nebo pokud používáš Maven tak existuje repozitář...

 
Nahoru Odpovědět
28.7.2014 12:44
Avatar
-snaživec-
Člen
Avatar
-snaživec-:11.11.2014 18:42

ja som to skúšal ele nešlo mi to:

com.sun.mail.util.MailConnectException: Couldn't connect to host, port: localhost, 25; timeout -1;
  nested exception is:
        java.net.ConnectException: Spojenie odmietnuté
        at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2053)  at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2053)
        at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2053)
        at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:697)
        at javax.mail.Service.connect(Service.java:364)
        at javax.mail.Service.connect(Service.java:245)
        at javax.mail.Service.connect(Service.java:194)
        at javax.mail.Transport.send0(Transport.java:253)
        at javax.mail.Transport.send(Transport.java:124)
        at wytk.oxsqwk.FXMLDocumentController.handleSendMailAction(FXMLDocumentController.java:92)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:483)
        at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:71)
        at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:483)
        at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:275)
        at javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1757)
        at javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1645)
        at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
        at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
        at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
        at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
        at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
        at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
        at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
        at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
        at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
        at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
        at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
        at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
        at javafx.event.Event.fireEvent(Event.java:198)
        at javafx.scene.Node.fireEvent(Node.java:8216)
        at javafx.scene.control.Button.fire(Button.java:185)
        at com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:182)
        at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:96)
        at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:89)
        at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218)
        at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
        at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
        at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
        at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
        at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
        at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
        at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
        at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
        at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
        at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
        at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
        at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
        at javafx.event.Event.fireEvent(Event.java:198)
        at javafx.scene.Scene$MouseHandler.process(Scene.java:3724)
        at javafx.scene.Scene$MouseHandler.access$1500(Scene.java:3452)
        at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1728)
        at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2461)
        at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:348)
        at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:273)
        at java.security.AccessController.doPrivileged(Native Method)
        at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:382)
        at com.sun.glass.ui.View.handleMouseEvent(View.java:553)
        at com.sun.glass.ui.View.notifyMouse(View.java:925)
        at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
        at com.sun.glass.ui.gtk.GtkApplication.lambda$null$45(GtkApplication.java:126)
        at com.sun.glass.ui.gtk.GtkApplication$$Lambda$43/10011721.run(Unknown Source)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.net.ConnectException: Spojenie odmietnuté
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345)
        at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
        at java.net.Socket.connect(Socket.java:589)
        at java.net.Socket.connect(Socket.java:538)
        at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:312)
        at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:236)
        at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2019)
        ... 64 more
Nahoru Odpovědět
11.11.2014 18:42
Pomali ďalej zájdeš.
Avatar
Matěj Kripner
Tvůrce
Avatar
Odpovídá na -snaživec-
Matěj Kripner:11.11.2014 19:06

Přiznám se, že jsem to doteď nerozchodil :) Tuhle chybu mi to házelo taky i s připojením k internetu.

 
Nahoru Odpovědět
11.11.2014 19:06
Avatar
-snaživec-
Člen
Avatar
-snaživec-:11.11.2014 19:43

Inak zabudol som napísať že používam Xubuntu :)

Nahoru Odpovědět
11.11.2014 19:43
Pomali ďalej zájdeš.
Avatar
-snaživec-
Člen
Avatar
Odpovídá na Matěj Kripner
-snaživec-:11.11.2014 19:48

Ak si tento error neviriešil tak ako inak sa dajú odosielať emaily ?

Nahoru Odpovědět
11.11.2014 19:48
Pomali ďalej zájdeš.
Avatar
Matěj Kripner
Tvůrce
Avatar
Odpovídá na -snaživec-
Matěj Kripner:11.11.2014 20:30

To, že jsem nevyřešil tuhle chybu neznamená, že jsem se pokoušel to řešit jinak :D Nebyla to zrovna klíčová část programu, spíš jsem to jen zkoušel...

 
Nahoru Odpovědět
11.11.2014 20:30
Avatar
Atrament
Tvůrce
Avatar
Atrament:11.11.2014 22:23

S velkou pravděpodobností nemáte vůbec nastavený smtp server, bez toho vám to samozřejmě nic nepošle. JavaMail samotný žádný mail server neposkytuje, takže musíte použít nějaký vlastní, a nebo např. gmail. V dokumentaci k API https://javamail.java.net/nonav/docs/api/ je maličký příklad, který stačí upravit třeba pro ten gmail tak, že do Properties na začátku vložíte:

props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.host", "smtp.gmail.com");

a v těch ostatních řádcích nahradíte údaje svými údaji k gmailu a cílovou adresou pak to funguje v pohodě.

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
11.11.2014 22:23
Avatar
miroslav
Člen
Avatar
Odpovídá na Matěj Kripner
miroslav:13.11.2014 21:17

http://java.net/…vax.mail.jar
zde se dá stáhnout java mail api
funguje pekne mám to otestované, odesíla maily pouze z účtu gmail

zdrojový kód ...

import com.sun.mail.smtp.SMTPTransport;
import java.security.Security;
import java.util.Date;
import java.util.Properties;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;


/**
 *
 * @author Mirec
 */
public class sendMail {

static String textOfMsg ="text správy"

public static void main(String[] args) {
Send(name, pass, to, subj, "");
/** prihlasovací jméno k google účtu(bez @gmail.com), heslo k účtu, príjemce,
*predmet správy
*/
}

    public static void Send(final String username, final String password, String recipientEmail, String title, String message) throws AddressException, MessagingException {
        gm.Send(username, password, recipientEmail, "", title, message);
    }

    public static void Send(final String username, final String password, String recipientEmail, String ccEmail, String title, String message) throws AddressException, MessagingException {


        Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
        final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";

        Properties props = System.getProperties();
        props.setProperty("mail.smtps.host", "smtp.gmail.com");
        props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);
        props.setProperty("mail.smtp.socketFactory.fallback", "false");
        props.setProperty("mail.smtp.port", "465");
        props.setProperty("mail.smtp.socketFactory.port", "465");
        props.setProperty("mail.smtps.auth", "true");

        props.put("mail.smtps.quitwait", "false");

        Session session = Session.getInstance(props, null);

        final MimeMessage msg = new MimeMessage(session);

        msg.setFrom(new InternetAddress(username + "@gmail.com"));
        msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(recipientEmail, false));

        if (ccEmail.length() > 0) {
            msg.setRecipients(Message.RecipientType.CC, InternetAddress.parse(ccEmail, false));
        }

        msg.setSubject(title);
        msg.setText(message, "utf-8");
        msg.setSentDate(new Date());

        BodyPart messageBodyPart = new MimeBodyPart();
        messageBodyPart.setText(textOfMsg);

        Multipart multipart = new MimeMultipart();
        multipart.addBodyPart(messageBodyPart);

        messageBodyPart = new MimeBodyPart();
        String filename = "file.txt";   //název, umístnení souboru k odeslání
        DataSource source = new FileDataSource(filename);
        messageBodyPart.setDataHandler(new DataHandler(source));
        messageBodyPart.setFileName(filename);
        multipart.addBodyPart(messageBodyPart);


        msg.setContent(multipart);

        SMTPTransport t = (SMTPTransport) session.getTransport("smtps");

        t.connect("smtp.gmail.com", username, password);
        t.sendMessage(msg, msg.getAllRecipients());
        System.out.println("msg was sent");
        t.close();

    }
}
Editováno 13.11.2014 21:18
Nahoru Odpovědět
13.11.2014 21:17
Scio me nihil scire
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 11 zpráv z 11.