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]
View more random threads:
Thông qua phân tích dữ liệu Google từ 86 quốc gia, mới đây, một công ty tại Anh đã công bố bảng xếp hạng kích tấc "cậu nhỏ" của các nước trên thế giới. Kết quả, hầu hết các nước xếp ở nhóm đầu của...
"Chim" của chàng trai Việt thuộc...