diff --git a/.idea/.name b/.idea/.name
new file mode 100644
index 0000000..6acfe80
--- /dev/null
+++ b/.idea/.name
@@ -0,0 +1 @@
+webSocket
\ No newline at end of file
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
index 0f6cfdf..9f543bc 100644
--- a/.idea/compiler.xml
+++ b/.idea/compiler.xml
@@ -1,7 +1,7 @@
-
+
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 41081b9..7299867 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -4,7 +4,7 @@
-
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
deleted file mode 100644
index d6fa8c2..0000000
--- a/.idea/modules.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/webSocket/src/main/java/computerNetwork/webSocket/gmail/GmailSender.java b/webSocket/src/main/java/computerNetwork/webSocket/gmail/GmailSender.java
index 50c272c..9a1fdf3 100644
--- a/webSocket/src/main/java/computerNetwork/webSocket/gmail/GmailSender.java
+++ b/webSocket/src/main/java/computerNetwork/webSocket/gmail/GmailSender.java
@@ -14,14 +14,15 @@ public class GmailSender {
private String gmailId;
private String gmailAppPassword;
private String receivedEmail;
+ private String subject;
private String message;
public GmailSender(String id,String password){
this.gmailId=id;
this.gmailAppPassword=password;
}
- public void sendEmail(String receivedEmail,String message) throws IOException {
- setReceivendEmailAndMessage(receivedEmail, message);
+ public void sendEmail(String receivedEmail,String subject,String message) throws IOException {
+ setReceivendEmailAndMessage(receivedEmail,subject, message);
// 일반 소켓을 사용해 Gmail SMTP 서버에 연결 (포트 587)
Socket clientSocket = new Socket("smtp.gmail.com", 587);
SSLSocket sslSocket = getTLSSocket(clientSocket);
@@ -42,8 +43,9 @@ public void sendEmail(String receivedEmail,String message) throws IOException {
}
- private void setReceivendEmailAndMessage(String receivedEmail, String message) {
+ private void setReceivendEmailAndMessage(String receivedEmail,String subject, String message) {
this.receivedEmail= receivedEmail;
+ this.subject = subject;
this.message= message;
}
@@ -125,7 +127,7 @@ private void setReadyToEmail() throws IOException {
private void sendEmailData() throws IOException {
String response;
- outToServer.writeBytes("Subject: Test Email\r\n");
+ outToServer.writeBytes("Subject: "+ subject +"\r\n");
outToServer.writeBytes("To: "+receivedEmail+"\r\n");
outToServer.writeBytes("From: "+gmailId+"\r\n");
outToServer.writeBytes("\r\n"); // 헤더와 본문을 구분하는 빈 줄
diff --git a/webSocket/src/main/java/computerNetwork/webSocket/javafx/HomePage.java b/webSocket/src/main/java/computerNetwork/webSocket/javafx/HomePage.java
index 815452f..5911e29 100644
--- a/webSocket/src/main/java/computerNetwork/webSocket/javafx/HomePage.java
+++ b/webSocket/src/main/java/computerNetwork/webSocket/javafx/HomePage.java
@@ -82,13 +82,13 @@ private VBox createHomeScreen(Stage primaryStage) {
List fetchingInformations= gmailFetcher.fetch(userData.getEmail(),userData.getLoginInfo());
//로그인 데이터
MailPage mailPage = new MailPage(userData);
- mailPage.start(fetchingInformations,primaryStage); // MailPage를 시작 구글과 통신하는 함수 호출 인자 email, password
+ mailPage.start(userInfo,fetchingInformations,primaryStage); // MailPage를 시작 구글과 통신하는 함수 호출 인자 email, password
} else if (selectedSite.equals("Naver")) {
List fetchingInformations= naverFetcher.fetch(userData.getEmail(),userData.getLoginInfo());
//로그인 데이터
MailPage mailPage = new MailPage(userData);
- mailPage.start(fetchingInformations,primaryStage); // MailPage를 시작 구글과 통신하는 함수 호출 인자 email, password
+ mailPage.start(userInfo,fetchingInformations,primaryStage); // MailPage를 시작 구글과 통신하는 함수 호출 인자 email, password
}
} catch (Exception e) {
System.out.println("로그인 오류가 발생함");
diff --git a/webSocket/src/main/java/computerNetwork/webSocket/javafx/MailDetail.java b/webSocket/src/main/java/computerNetwork/webSocket/javafx/MailDetail.java
index 287c0da..168a5f1 100644
--- a/webSocket/src/main/java/computerNetwork/webSocket/javafx/MailDetail.java
+++ b/webSocket/src/main/java/computerNetwork/webSocket/javafx/MailDetail.java
@@ -1,5 +1,6 @@
package computerNetwork.webSocket.javafx;
+import computerNetwork.webSocket.dto.UserInfo;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
@@ -17,7 +18,7 @@ public MailDetail(WriteMail writeMail) {
this.writeMail = writeMail; // WriteMail 인스턴스 초기화
}
- public void showMailDetails(Stage owner, String sender, String recipient, String subject) {
+ public void showMailDetails(UserInfo userInfo,Stage owner, String sender, String recipient, String subject) {
Stage detailStage = new Stage();
detailStage.initOwner(owner);
detailStage.setTitle("메일 세부 정보");
@@ -37,7 +38,7 @@ public void showMailDetails(Stage owner, String sender, String recipient, String
// 답장하기 버튼
Button replyButton = new Button("답장하기");
replyButton.setOnAction(event -> {
- writeMail.openComposeMailWindow(owner, sender); // 답장할 때 보낸이를 받는 사람으로 설정
+ writeMail.openComposeMailWindow(userInfo,owner, sender); // 답장할 때 보낸이를 받는 사람으로 설정
// detailStage.close(); // 이 줄을 제거하여 창이 닫히지 않도록 합니다.
});
diff --git a/webSocket/src/main/java/computerNetwork/webSocket/javafx/MailPage.java b/webSocket/src/main/java/computerNetwork/webSocket/javafx/MailPage.java
index 3aa81b7..a5bf8a3 100644
--- a/webSocket/src/main/java/computerNetwork/webSocket/javafx/MailPage.java
+++ b/webSocket/src/main/java/computerNetwork/webSocket/javafx/MailPage.java
@@ -42,12 +42,12 @@ public MailPage(UserData userData) {
this.userEmail = userData.getEmail();
}
- public void start(List fetchingInformations, Stage primaryStage) {
+ public void start(UserInfo userInfo,List fetchingInformations, Stage primaryStage) {
// 메일박스의 루트 레이아웃
BorderPane mailboxRoot = new BorderPane();
// 좌측 사이드바 생성
- MailSidebar sidebar = new MailSidebar(primaryStage, this,fetchingInformations);
+ MailSidebar sidebar = new MailSidebar(userInfo,primaryStage, this,fetchingInformations);
mailboxRoot.setLeft(sidebar);
// 메일 내용 표시 영역 (테이블)
mailTable = new MailTable();
@@ -56,7 +56,7 @@ public void start(List fetchingInformations, Stage primaryS
if (event.getClickCount() == 2) {
Mail selectedMail = mailTable.getSelectedMail(); // 선택된 메일 가져오기
if (selectedMail != null) {
- showMailDetails(selectedMail); // 세부 정보 표시
+ showMailDetails(userInfo,selectedMail); // 세부 정보 표시
}
}
});
@@ -118,8 +118,9 @@ public void loadAllMails(List fetchingInformations) {
- private void showMailDetails(Mail mail) {
+ private void showMailDetails(UserInfo userInfo,Mail mail) {
mailDetail.showMailDetails(
+ userInfo,
(Stage) mailTable.getTableView().getScene().getWindow(),
mail.getSender(),
mail.getDate(),
diff --git a/webSocket/src/main/java/computerNetwork/webSocket/javafx/MailSidebar.java b/webSocket/src/main/java/computerNetwork/webSocket/javafx/MailSidebar.java
index 216387b..7076d8d 100644
--- a/webSocket/src/main/java/computerNetwork/webSocket/javafx/MailSidebar.java
+++ b/webSocket/src/main/java/computerNetwork/webSocket/javafx/MailSidebar.java
@@ -1,6 +1,7 @@
package computerNetwork.webSocket.javafx;
import computerNetwork.webSocket.dto.FetchingInformation;
+import computerNetwork.webSocket.dto.UserInfo;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
@@ -11,7 +12,7 @@
public class MailSidebar extends VBox {
- public MailSidebar(Stage primaryStage, MailPage mailPage, List fetchingInformations) {
+ public MailSidebar(UserInfo userInfo,Stage primaryStage, MailPage mailPage, List fetchingInformations) {
@@ -26,7 +27,7 @@ public MailSidebar(Stage primaryStage, MailPage mailPage, List {
WriteMail writeMail = new WriteMail(); // WriteMail 인스턴스 생성
- writeMail.openComposeMailWindow(primaryStage, ""); // 메일 쓰기 창 열기, 기본적으로 받는 사람은 빈 문자열
+ writeMail.openComposeMailWindow(userInfo,primaryStage, ""); // 메일 쓰기 창 열기, 기본적으로 받는 사람은 빈 문자열
});
allMailsButton.setOnAction(event -> mailPage.loadAllMails(fetchingInformations));
diff --git a/webSocket/src/main/java/computerNetwork/webSocket/javafx/WriteMail.java b/webSocket/src/main/java/computerNetwork/webSocket/javafx/WriteMail.java
index d5762d3..9f967b2 100644
--- a/webSocket/src/main/java/computerNetwork/webSocket/javafx/WriteMail.java
+++ b/webSocket/src/main/java/computerNetwork/webSocket/javafx/WriteMail.java
@@ -1,5 +1,9 @@
package computerNetwork.webSocket.javafx;
+import computerNetwork.webSocket.dto.UserInfo;
+import computerNetwork.webSocket.gmail.GmailSender;
+import computerNetwork.webSocket.naver.NaverFetcher;
+import computerNetwork.webSocket.naver.NaverSender;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
@@ -10,17 +14,21 @@
import javafx.stage.Stage;
import java.io.File;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
+//import static computerNetwork.webSocket.javafx.HomePage.userInfo;
+
public class WriteMail {
- public void openComposeMailWindow(Stage owner, String recipient) {
+ public void openComposeMailWindow(UserInfo info, Stage owner, String recipient) {
Stage composeStage = new Stage();
composeStage.initModality(Modality.WINDOW_MODAL); // 부모 창이 활성화된 상태에서만 작동
composeStage.initOwner(owner); // 부모 창 설정
composeStage.setTitle("메일 쓰기");
+
// 레이아웃 설정
VBox layout = new VBox();
layout.setPadding(new Insets(10));
@@ -78,6 +86,22 @@ public void openComposeMailWindow(Stage owner, String recipient) {
String email = emailField.getText();
String subject = subjectField.getText();
String content = contentArea.getText();
+ if(info.platform()=="Naver"){
+ NaverSender ns=new NaverSender();
+ try {
+ ns.sendNaverEmail(info.email(),info.password(),email,subject,content);
+ } catch (IOException ex) {
+ throw new RuntimeException(ex);
+ }
+ }
+ if(info.platform()=="Google"){
+ GmailSender gs= new GmailSender(info.email(),info.password());
+ try {
+ gs.sendEmail(email, subject, content);
+ } catch (IOException ex) {
+ throw new RuntimeException(ex);
+ }
+ }
// 여기서 전송 로직을 추가하면 됩니다.
System.out.println("보낼 메일 주소: " + email);
System.out.println("제목: " + subject);
diff --git a/webSocket/src/main/java/computerNetwork/webSocket/ui/UI.java b/webSocket/src/main/java/computerNetwork/webSocket/ui/UI.java
index 9b3150a..4317764 100644
--- a/webSocket/src/main/java/computerNetwork/webSocket/ui/UI.java
+++ b/webSocket/src/main/java/computerNetwork/webSocket/ui/UI.java
@@ -31,7 +31,7 @@ public void run() throws IOException {
//TODO: 받은 정보를 통해서 websocket program 구현
GmailSender gmailSender=new GmailSender(email,password);
- gmailSender.sendEmail("msw0909@naver.com","mailmail");
+ gmailSender.sendEmail("msw0909@naver.com","this is subject","mailmail");
}
}