Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .idea/.name

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion .idea/compiler.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 0 additions & 8 deletions .idea/modules.xml

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand All @@ -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;
}

Expand Down Expand Up @@ -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"); // 헤더와 본문을 구분하는 빈 줄
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,13 +82,13 @@ private VBox createHomeScreen(Stage primaryStage) {
List<FetchingInformation> 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<FetchingInformation> 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("로그인 오류가 발생함");
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -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("메일 세부 정보");
Expand All @@ -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(); // 이 줄을 제거하여 창이 닫히지 않도록 합니다.
});

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,12 +42,12 @@ public MailPage(UserData userData) {
this.userEmail = userData.getEmail();
}

public void start(List<FetchingInformation> fetchingInformations, Stage primaryStage) {
public void start(UserInfo userInfo,List<FetchingInformation> 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();
Expand All @@ -56,7 +56,7 @@ public void start(List<FetchingInformation> fetchingInformations, Stage primaryS
if (event.getClickCount() == 2) {
Mail selectedMail = mailTable.getSelectedMail(); // 선택된 메일 가져오기
if (selectedMail != null) {
showMailDetails(selectedMail); // 세부 정보 표시
showMailDetails(userInfo,selectedMail); // 세부 정보 표시
}
}
});
Expand Down Expand Up @@ -118,8 +118,9 @@ public void loadAllMails(List<FetchingInformation> 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(),
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -11,7 +12,7 @@

public class MailSidebar extends VBox {

public MailSidebar(Stage primaryStage, MailPage mailPage, List<FetchingInformation> fetchingInformations) {
public MailSidebar(UserInfo userInfo,Stage primaryStage, MailPage mailPage, List<FetchingInformation> fetchingInformations) {



Expand All @@ -26,7 +27,7 @@ public MailSidebar(Stage primaryStage, MailPage mailPage, List<FetchingInformati
// 버튼 클릭 이벤트 설정
composeButton.setOnAction(event -> {
WriteMail writeMail = new WriteMail(); // WriteMail 인스턴스 생성
writeMail.openComposeMailWindow(primaryStage, ""); // 메일 쓰기 창 열기, 기본적으로 받는 사람은 빈 문자열
writeMail.openComposeMailWindow(userInfo,primaryStage, ""); // 메일 쓰기 창 열기, 기본적으로 받는 사람은 빈 문자열
});

allMailsButton.setOnAction(event -> mailPage.loadAllMails(fetchingInformations));
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -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));
Expand Down Expand Up @@ -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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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");

}
}