Java — SMTP / POP3 клиент в Linux

Я хочу разработать клиент STMP / POP3 в Linux (только на стороне клиента). Я хочу зашифровать данные с помощью цифровых сертификатов (я постараюсь обеспечить сквозную безопасность). Я также хочу создать простой интерфейс (с текстовым полем, кнопкой «Отправить», «Входящие» и т. Д.). Мой вопрос: должен ли я сделать это в Java (если это возможно) или C / C ++ (в этом случае я должен использовать некоторые инструменты для интерфейса-> QT, например). Как вы думаете?
И мой второй вопрос: если у вас есть идеи / рекомендации или полезные ссылки (или что-нибудь, что могло бы мне помочь), я был бы признателен за это.

-1

Решение

О вашем первом вопросе

Должен ли я сделать это в Java (если это возможно) или C / C ++

Вы можете использовать любой язык, который вам удобен, и если вы хотите, чтобы мое предложение было предложено, я бы использовал java, потому что создавать графические интерфейсы с помощью Swing или Javafx очень просто, и существует множество библиотек, которые могут помочь в достижении вашей цели.

А по поводу вашего второго вопроса

если у вас есть идеи / рекомендации или полезные ссылки

Вы можете найти полезный учебник, который поможет вам с начала и до конца на этом сайте: Учебное пособие по API JavaMail — Учебное пособие

Вот простой интерфейс приложения. Чтобы начать с вашего проекта, созданного с использованием JavaFx.

Простой пользовательский интерфейс приложения, использующий снимок экрана рабочего стола JavaFX

Main.java

package application;

import javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.layout.AnchorPane;
import javafx.fxml.FXMLLoader;public class Main extends Application {
@Override
public void start(Stage primaryStage) {
try {
AnchorPane root = (AnchorPane)FXMLLoader.load(getClass().getResource("Email.fxml"));
Scene scene = new Scene(root,400,400);
scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
primaryStage.setScene(scene);
primaryStage.show();
} catch(Exception e) {
e.printStackTrace();
}
}

public static void main(String[] args) {
launch(args);
}
}

EmailController.java

package application;

import java.net.URL;
import java.util.ResourceBundle;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.PasswordField;
import javafx.scene.control.TextArea;
import javafx.scene.control.TextField;

public class EmailController {

@FXML
private ResourceBundle resources;

@FXML
private URL location;

@FXML
private TextField fromField;

@FXML
private TextField toField;

@FXML
private TextField loginField;

@FXML
private PasswordField passwordField;

@FXML
private TextField subjectField;

@FXML
private TextArea messageField;

@FXML
private Button deleteButton;

@FXML
private Button sendButton;

@FXML
void initialize() {}
}

Email.fxml

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.geometry.Insets?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.PasswordField?>
<?import javafx.scene.control.TextArea?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.ColumnConstraints?>
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.layout.Pane?>
<?import javafx.scene.layout.RowConstraints?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.text.Font?><fx:root type="AnchorPane" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8.0.111" fx:controller="application.EmailController">
<children>
<Pane prefHeight="522.0" prefWidth="761.0">
<children>
<VBox prefHeight="522.0" prefWidth="761.0">
<children>
<GridPane gridLinesVisible="true">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" maxWidth="328.0" minWidth="10.0" prefWidth="131.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="635.0" minWidth="10.0" prefWidth="630.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<Label alignment="CENTER_RIGHT" prefHeight="23.0" prefWidth="136.0" text="From : ">
<font>
<Font name="Segoe UI" size="18.0" />
</font>
</Label>
<TextField fx:id="fromField" GridPane.columnIndex="1" />
<Label alignment="CENTER_RIGHT" prefHeight="17.0" prefWidth="134.0" text="To : " textAlignment="CENTER" GridPane.rowIndex="1">
<font>
<Font name="Segoe UI" size="18.0" />
</font>
</Label>
<Label alignment="CENTER_RIGHT" prefHeight="17.0" prefWidth="134.0" text="Login : " textAlignment="CENTER" GridPane.rowIndex="2">
<font>
<Font name="Segoe UI" size="18.0" />
</font>
</Label>
<TextField fx:id="toField" GridPane.columnIndex="1" GridPane.rowIndex="1" />
<TextField fx:id="loginField" GridPane.columnIndex="1" GridPane.rowIndex="2" />
<Label alignment="CENTER_RIGHT" prefHeight="17.0" prefWidth="134.0" text="Password : " textAlignment="CENTER" GridPane.rowIndex="3">
<font>
<Font name="Segoe UI" size="18.0" />
</font>
</Label>
<PasswordField fx:id="passwordField" GridPane.columnIndex="1" GridPane.rowIndex="3" />
</children>
</GridPane>
<GridPane prefHeight="240.0" prefWidth="681.0">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" maxWidth="659.0" minWidth="10.0" prefWidth="152.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="722.0" minWidth="10.0" prefWidth="609.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints />
<RowConstraints minHeight="10.0" prefHeight="30.0" />
</rowConstraints>
<children>
<Label alignment="CENTER_RIGHT" prefHeight="23.0" prefWidth="150.0" text="Subject : ">
<font>
<Font name="Segoe UI" size="18.0" />
</font>
</Label>
<TextField fx:id="subjectField" GridPane.columnIndex="1" />
<Label alignment="CENTER_RIGHT" prefHeight="23.0" prefWidth="150.0" text="Message : " GridPane.hgrow="ALWAYS" GridPane.rowIndex="1" GridPane.vgrow="ALWAYS">
<font>
<Font name="Segoe UI" size="18.0" />
</font>
</Label>
<TextArea fx:id="messageField" prefHeight="200.0" prefWidth="200.0" GridPane.columnIndex="1" GridPane.rowIndex="1" GridPane.rowSpan="2">
<GridPane.margin>
<Insets top="10.0" />
</GridPane.margin>
</TextArea>
</children>
<VBox.margin>
<Insets left="30.0" right="30.0" top="20.0" />
</VBox.margin>
</GridPane>
<Pane prefHeight="200.0" prefWidth="200.0">
<children>
<Button fx:id="deleteButton" layoutX="220.0" layoutY="30.0" mnemonicParsing="false" prefHeight="30.0" prefWidth="150.0" text="Delete">
<font>
<Font name="Segoe UI" size="24.0" />
</font>
</Button>
<Button fx:id="sendButton" layoutX="450.0" layoutY="30.0" mnemonicParsing="false" prefHeight="30.0" prefWidth="150.0" text="SEND">
<font>
<Font name="Segoe UI" size="24.0" />
</font>
</Button>
</children>
</Pane>
</children>
</VBox>
</children>
</Pane>
</children>
</fx:root>
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]