aboutsummaryrefslogtreecommitdiffstats
path: root/src/ui/SendMailDialog.cpp
diff options
context:
space:
mode:
authorSaturneric <[email protected]>2021-10-02 14:08:50 +0000
committerSaturneric <[email protected]>2021-10-02 14:16:27 +0000
commit3c65d087eeee687ac01af2e80f3dd538f9a2c230 (patch)
tree1e860dc6343c1897e2224a002f2ca44c574381b3 /src/ui/SendMailDialog.cpp
parentThe basic functions of the core pass the test. (diff)
downloadGpgFrontend-3c65d087eeee687ac01af2e80f3dd538f9a2c230.tar.gz
GpgFrontend-3c65d087eeee687ac01af2e80f3dd538f9a2c230.zip
UI Framework Modified.
Diffstat (limited to 'src/ui/SendMailDialog.cpp')
-rw-r--r--src/ui/SendMailDialog.cpp294
1 files changed, 158 insertions, 136 deletions
diff --git a/src/ui/SendMailDialog.cpp b/src/ui/SendMailDialog.cpp
index 5bea7cb2..e140ca87 100644
--- a/src/ui/SendMailDialog.cpp
+++ b/src/ui/SendMailDialog.cpp
@@ -25,149 +25,171 @@
#include "ui/SendMailDialog.h"
#include <utility>
-#include "smtp/SmtpMime"
-
-SendMailDialog::SendMailDialog(QString text, QWidget *parent)
- : QDialog(parent), appPath(qApp->applicationDirPath()),
- settings(RESOURCE_DIR(appPath) + "/conf/gpgfrontend.ini", QSettings::IniFormat), mText(std::move(text)) {
-
- if (smtpAddress.isEmpty()) {
- QMessageBox::critical(this, tr("Incomplete configuration"),
- tr("The SMTP address is empty, please go to the setting interface to complete the configuration."));
-
- deleteLater();
- return;
-
- }
-
- senderEdit = new QLineEdit();
- senderEdit->setText(defaultSender);
- recipientEdit = new QTextEdit();
- recipientEdit->setPlaceholderText("One or more email addresses. Please use ; to separate.");
- subjectEdit = new QLineEdit();
-
- errorLabel = new QLabel();
-
- qDebug() << "Send Mail Settings" << smtpAddress << username << password << defaultSender << connectionTypeSettings;
-
- confirmButton = new QPushButton("Confirm");
- auto layout = new QGridLayout();
- layout->addWidget(new QLabel("Sender"), 0, 0);
- layout->addWidget(senderEdit, 0, 1);
- layout->addWidget(new QLabel("Recipient"), 1, 0);
- layout->addWidget(recipientEdit, 1, 1);
- layout->addWidget(new QLabel("Subject"), 2, 0);
- layout->addWidget(subjectEdit, 2, 1);
- layout->addWidget(confirmButton, 3, 1);
- layout->addWidget(errorLabel, 4, 0, 1, 2);
-
- connect(confirmButton, SIGNAL(clicked(bool)), this, SLOT(slotConfirm()));
+#ifdef STMP_ENABLED
+#include "smtp/SmtpMime"
+#endif
+
+namespace GpgFrontend::UI {
+
+SendMailDialog::SendMailDialog(QString text, QWidget* parent)
+ : QDialog(parent),
+ appPath(qApp->applicationDirPath()),
+ settings(RESOURCE_DIR(appPath) + "/conf/gpgfrontend.ini",
+ QSettings::IniFormat),
+ mText(std::move(text)) {
+ if (smtpAddress.isEmpty()) {
+ QMessageBox::critical(
+ this, tr("Incomplete configuration"),
+ tr("The SMTP address is empty, please go to the setting interface to "
+ "complete the configuration."));
- this->setLayout(layout);
- this->setWindowTitle("Send Mail");
- this->setModal(true);
- this->setFixedWidth(320);
- this->show();
+ deleteLater();
+ return;
+ }
+
+ senderEdit = new QLineEdit();
+ senderEdit->setText(defaultSender);
+ recipientEdit = new QTextEdit();
+ recipientEdit->setPlaceholderText(
+ "One or more email addresses. Please use ; to separate.");
+ subjectEdit = new QLineEdit();
+
+ errorLabel = new QLabel();
+
+ qDebug() << "Send Mail Settings" << smtpAddress << username << password
+ << defaultSender << connectionTypeSettings;
+
+ confirmButton = new QPushButton("Confirm");
+
+ auto layout = new QGridLayout();
+ layout->addWidget(new QLabel("Sender"), 0, 0);
+ layout->addWidget(senderEdit, 0, 1);
+ layout->addWidget(new QLabel("Recipient"), 1, 0);
+ layout->addWidget(recipientEdit, 1, 1);
+ layout->addWidget(new QLabel("Subject"), 2, 0);
+ layout->addWidget(subjectEdit, 2, 1);
+ layout->addWidget(confirmButton, 3, 1);
+ layout->addWidget(errorLabel, 4, 0, 1, 2);
+
+#ifdef STMP_ENABLED
+ connect(confirmButton, SIGNAL(clicked(bool)), this, SLOT(slotConfirm()));
+#endif
+
+ this->setLayout(layout);
+ this->setWindowTitle("Send Mail");
+ this->setModal(true);
+ this->setFixedWidth(320);
+ this->show();
}
-bool SendMailDialog::check_email_address(const QString &str) {
- return re_email.match(str).hasMatch();
+bool SendMailDialog::check_email_address(const QString& str) {
+ return re_email.match(str).hasMatch();
}
-void SendMailDialog::slotConfirm() {
-
- QString errString;
- errorLabel->clear();
-
- QStringList rcptStringList = recipientEdit->toPlainText().split(';');
-
- if (rcptStringList.isEmpty()) {
- errString.append(tr(" Recipient cannot be empty \n"));
- } else {
- for (const auto& reci : rcptStringList) {
- qDebug() << "Receiver" << reci.trimmed();
- if (!check_email_address(reci.trimmed())) {
- errString.append(tr(" One or more Recipient's Email Address is invalid \n"));
- break;
- }
- }
- }
- if (senderEdit->text().isEmpty()) {
- errString.append(tr(" Sender cannot be empty \n"));
- } else if (!check_email_address(senderEdit->text())) {
- errString.append(tr(" Sender's Email Address is invalid \n"));
- }
-
- if (!errString.isEmpty()) {
- errorLabel->setAutoFillBackground(true);
- QPalette error = errorLabel->palette();
- error.setColor(QPalette::Window, "#ff8080");
- errorLabel->setPalette(error);
- errorLabel->setText(errString);
- return;
- }
-
- SmtpClient::ConnectionType connectionType = SmtpClient::ConnectionType::TcpConnection;
-
- if (connectionTypeSettings == "SSL") {
- connectionType = SmtpClient::ConnectionType::SslConnection;
- } else if (connectionTypeSettings == "TLS") {
- connectionType = SmtpClient::ConnectionType::TlsConnection;
- } else if (connectionTypeSettings == "STARTTLS") {
- connectionType = SmtpClient::ConnectionType::TlsConnection;
- } else {
- connectionType = SmtpClient::ConnectionType::TcpConnection;
- }
-
- SmtpClient smtp(smtpAddress, port, connectionType);
-
- // We need to set the username (your email address) and the password
- // for smtp authentification.
+#ifdef STMP_ENABLED
- smtp.setUser(username);
- smtp.setPassword(password);
-
- // Now we create a MimeMessage object. This will be the email.
-
- MimeMessage message;
-
- message.setSender(new EmailAddress(senderEdit->text()));
- for (const auto &reci : rcptStringList) {
- if(!reci.isEmpty())
- message.addRecipient(new EmailAddress(reci.trimmed()));
+void SendMailDialog::slotConfirm() {
+ QString errString;
+ errorLabel->clear();
+
+ QStringList rcptStringList = recipientEdit->toPlainText().split(';');
+
+ if (rcptStringList.isEmpty()) {
+ errString.append(tr(" Recipient cannot be empty \n"));
+ } else {
+ for (const auto& reci : rcptStringList) {
+ qDebug() << "Receiver" << reci.trimmed();
+ if (!check_email_address(reci.trimmed())) {
+ errString.append(
+ tr(" One or more Recipient's Email Address is invalid \n"));
+ break;
+ }
}
- message.setSubject(subjectEdit->text());
-
- // Now add some text to the email.
- // First we create a MimeText object.
-
- MimeText text;
-
- text.setText(mText);
+ }
+ if (senderEdit->text().isEmpty()) {
+ errString.append(tr(" Sender cannot be empty \n"));
+ } else if (!check_email_address(senderEdit->text())) {
+ errString.append(tr(" Sender's Email Address is invalid \n"));
+ }
+
+ if (!errString.isEmpty()) {
+ errorLabel->setAutoFillBackground(true);
+ QPalette error = errorLabel->palette();
+ error.setColor(QPalette::Window, "#ff8080");
+ errorLabel->setPalette(error);
+ errorLabel->setText(errString);
+ return;
+ }
+
+ SmtpClient::ConnectionType connectionType =
+ SmtpClient::ConnectionType::TcpConnection;
+
+ if (connectionTypeSettings == "SSL") {
+ connectionType = SmtpClient::ConnectionType::SslConnection;
+ } else if (connectionTypeSettings == "TLS") {
+ connectionType = SmtpClient::ConnectionType::TlsConnection;
+ } else if (connectionTypeSettings == "STARTTLS") {
+ connectionType = SmtpClient::ConnectionType::TlsConnection;
+ } else {
+ connectionType = SmtpClient::ConnectionType::TcpConnection;
+ }
+
+ SmtpClient smtp(smtpAddress, port, connectionType);
+
+ // We need to set the username (your email address) and the password
+ // for smtp authentification.
+
+ smtp.setUser(username);
+ smtp.setPassword(password);
+
+ // Now we create a MimeMessage object. This will be the email.
+
+ MimeMessage message;
+
+ message.setSender(new EmailAddress(senderEdit->text()));
+ for (const auto& reci : rcptStringList) {
+ if (!reci.isEmpty())
+ message.addRecipient(new EmailAddress(reci.trimmed()));
+ }
+ message.setSubject(subjectEdit->text());
+
+ // Now add some text to the email.
+ // First we create a MimeText object.
+
+ MimeText text;
+
+ text.setText(mText);
+
+ // Now add it to the mail
+ message.addPart(&text);
+
+ // Now we can send the mail
+ if (!smtp.connectToHost()) {
+ qDebug() << "Connect to SMTP Server Failed";
+ QMessageBox::critical(this, tr("Fail"), tr("Fail to Connect SMTP Server"));
+ return;
+ }
+ if (!smtp.login()) {
+ qDebug() << "Login to SMTP Server Failed";
+ QMessageBox::critical(this, tr("Fail"),
+ tr("Fail to Login into SMTP Server"));
+ return;
+ }
+ if (!smtp.sendMail(message)) {
+ qDebug() << "Send Mail to SMTP Server Failed";
+ QMessageBox::critical(this, tr("Fail"),
+ tr("Fail to Send Mail to SMTP Server"));
+ return;
+ }
+ smtp.quit();
+
+ // Close after sending email
+ QMessageBox::information(this, tr("Success"),
+ tr("Succeed in Sending Mail to SMTP Server"));
+ deleteLater();
+}
- // Now add it to the mail
- message.addPart(&text);
+#endif
- // Now we can send the mail
- if (!smtp.connectToHost()) {
- qDebug() << "Connect to SMTP Server Failed";
- QMessageBox::critical(this, tr("Fail"), tr("Fail to Connect SMTP Server"));
- return;
- }
- if (!smtp.login()) {
- qDebug() << "Login to SMTP Server Failed";
- QMessageBox::critical(this, tr("Fail"), tr("Fail to Login into SMTP Server"));
- return;
- }
- if (!smtp.sendMail(message)) {
- qDebug() << "Send Mail to SMTP Server Failed";
- QMessageBox::critical(this, tr("Fail"), tr("Fail to Send Mail to SMTP Server"));
- return;
- }
- smtp.quit();
-
- // Close after sending email
- QMessageBox::information(this, tr("Success"), tr("Succeed in Sending Mail to SMTP Server"));
- deleteLater();
-}
+} // namespace GpgFrontend::UI