Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 2 của 2
  1. #1

    Không thể gọi được Class SendMail

    Class SendMail
    Mã:
    import java.util.Properties;
    import javafx.application.Application;
    import javafx.collections.FXCollections;
    import javafx.event.ActionEvent;
    import javafx.geometry.Insets;
    import javafx.geometry.Pos;
    import javafx.scene.Group;
    import javafx.scene.Scene;
    import javafx.scene.control.Button;
    import javafx.scene.control.ChoiceBox;
    import javafx.scene.control.Label;
    import javafx.scene.control.TextField;
    import javafx.scene.layout.GridPane;
    import javafx.scene.layout.VBox;
    import javafx.scene.web.HTMLEditor;
    import javafx.stage.Stage;
    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;
    import javax.swing.JOptionPane;
    
    /*
     * To change this license header, choose License Headers in Project Properties.
     * To change this template file, choose Tools | Templates
     * and open the template in the editor.
     */
    
    /**
     *
     * @author UIT
     */
    public class SendMail extends Application {
        
        
        String Host = DangNhap.sendingHost;
        int Port = DangNhap.sendingPort;
        String User = DangNhap.severName;
        String Password = DangNhap.password;
        
        //ghi de phương thức star()
        @Override
        public void start(Stage stage) {
            //Cai đặt thông tin chương trình gửi
            final HTMLEditor htmlEditor = new HTMLEditor();
            stage.setTitle("Lập Trình Hệ Thống Với Java - Gửi Email");
            stage.setWidth(700);
            stage.setHeight(500);
            stage.setResizable(false);
            Scene scene = new Scene(new Group());
     
            final VBox root = new VBox();        
            root.setPadding(new Insets(8, 8, 8, 8));
            root.setSpacing(5);
            root.setAlignment(Pos.BOTTOM_LEFT);
            // tạo grid
            final GridPane grid = new GridPane();
            grid.setVgap(5);
            grid.setHgap(10);
            //Chọn chế độ gửi mail 
            //tạo ra 1 choiceBox
            final ChoiceBox sendTo = 
                new ChoiceBox(FXCollections.observableArrayList(
                    "To:", "Cc:")
            );    
            
            //Gắn vào khung và sự kiện
            sendTo.setPrefWidth(100);                
            GridPane.setConstraints(sendTo, 0, 0);
            grid.getChildren().add(sendTo);
           
            
            final TextField tbTo = new TextField();
            tbTo.setPrefWidth(600);
            GridPane.setConstraints(tbTo, 1, 0);
            grid.getChildren().add(tbTo);
            
            final Label subjectLabel = new Label("Subject:");
            GridPane.setConstraints(subjectLabel, 0, 1);
            grid.getChildren().add(subjectLabel);        
            
            final TextField tbSubject = new TextField();
            tbTo.setPrefWidth(600);
            GridPane.setConstraints(tbSubject, 1, 1);
            grid.getChildren().add(tbSubject);
            
            root.getChildren().add(grid);
            
            //Set lại kiểu khung viền htmlEditor
            htmlEditor.setPrefHeight(370);
            htmlEditor.setStyle(
                "-fx-font: 12 cambria;"
                + "-fx-border-color: red; "
                + "-fx-border-style: dotted;"
                + "-fx-border-width: 2;"
                );
            //Tạo Button gưi và sự kiện Click 
            Button Send = new Button("Send");
            Send.setOnAction(this::SendClick);
            root.getChildren().addAll(htmlEditor, Send);
            
            final Label htmlLabel = new Label();
            htmlLabel.setWrapText(true);
            
            //Show
            scene.setRoot(root);
            stage.setScene(scene);
            stage.show();
        }
        
       private void sendToClick(ActionEvent event)
       {
           
       }
       private void SendClick(ActionEvent event) 
       {
            //JOptionPane.showMessageDialog(null,"Không gửi được mail, kiem tra kết nối và thử lại!");
            try{
            Properties props = new Properties();
            props.put("mail.smtp.host", Host);
            props.put("mail.smtp.port", String.valueOf(Port));
            props.put("mail.smtp.user", User);
            props.put("mail.smtp.password", Password);
            props.put("mail.smtp.auth", "true");
            props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
                 
            Session session = Session.getInstance(props,
            new javax.mail.Authenticator()
                {
                  @Override
                  protected PasswordAuthentication getPasswordAuthentication()
                  {
                      return new PasswordAuthentication(User,  Password);
                  }
                });
                MimeMessage msg = new MimeMessage(session);
                Transport tran = session.getTransport("smtp");
                msg.setFrom(new InternetAddress("Example@gmail.com"));
                msg.setRecipients(Message.RecipientType.TO,InternetAddress.parse(User + "@gmail.com"));
                msg.setSubject("test");
                //msg.setContent(htmlEditor.getHtmlText(),"text/html");
                Transport.send(msg);
                JOptionPane.showMessageDialog(null,"ok");
            } catch(MessagingException e)
            {
                JOptionPane.showMessageDialog(null,"Không gửi được email, kiểm tra kết nối và thử lại!");
            }
            
        }
       public static void main(String[] args) {
            launch(args);
        }
    }
    Code gọi class SendMail

    Mã:
     if(t.isConnected() == true)
                {
                    SendMail Mail  = new SendMail();
                    Mail.start(new Stage());
                }
    Khi mình chạy thì nó lỗi
    Mã:
    Exception in thread "AWT-EventQueue-0" java.lang.IllegalStateException: Not on FX application thread; currentThread = AWT-EventQueue-0
    	at com.sun.javafx.tk.Toolkit.checkFxUserThread(Toolkit.java:210)
    	at com.sun.javafx.tk.quantum.QuantumToolkit.checkFxUserThread(QuantumToolkit.java:393)
    	at javafx.stage.Stage.<init>(Stage.java:233)
    	at javafx.stage.Stage.<init>(Stage.java:219)
    	at DangNhap.ButtonOKActionPerformed(DangNhap.java:187)
    	at DangNhap.access$200(DangNhap.java:21)
    	at DangNhap$3.actionPerformed(DangNhap.java:88)
    	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
    	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2346)
    	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
    	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
    	at java.awt.Component.processMouseEvent(Component.java:6527)
    	at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
    	at java.awt.Component.processEvent(Component.java:6292)
    	at java.awt.Container.processEvent(Container.java:2234)
    	at java.awt.Component.dispatchEventImpl(Component.java:4883)
    	at java.awt.Container.dispatchEventImpl(Container.java:2292)
    	at java.awt.Component.dispatchEvent(Component.java:4705)
    	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898)
    	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4533)
    	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462)
    	at java.awt.Container.dispatchEventImpl(Container.java:2278)
    	at java.awt.Window.dispatchEventImpl(Window.java:2739)
    	at java.awt.Component.dispatchEvent(Component.java:4705)
    	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:746)
    	at java.awt.EventQueue.access$400(EventQueue.java:97)
    	at java.awt.EventQueue$3.run(EventQueue.java:697)
    	at java.awt.EventQueue$3.run(EventQueue.java:691)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
    	at java.awt.EventQueue$4.run(EventQueue.java:719)
    	at java.awt.EventQueue$4.run(EventQueue.java:717)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:716)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
    Bạn nào đã làm cái này rồi xin giúp mình cách sửa với....đặc biệt là cái hàm Mail.Start()....làm mãi không chạy được!

    - - - Nội dung đã được cập nhật ngày 17-06-2014 lúc 08:31 PM - - -

    có bạn nào giúp mình được không? mình làm 1 ngày rồi mà vẫn không thể chạy được chỗ Mail.start.............[IMG]images/smilies/dont_know.gif[/IMG]

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Class Application cấu trúc thế nào? Bạn post code của nó lên luôn đi.
    Còn đoạn code gọi Class SendMail đó, nó nằm ở class nào? Bạn post lên luôn.
    Những gì liên quan đến vấn đề bạn hỏi thì post cả lên. Post thiếu thế thì mình không giúp được. [IMG]images/smiliesot_talking.gif[/IMG]

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •