aboutsummaryrefslogtreecommitdiffstats
path: root/src/ui/SendMailDialog.cpp
diff options
context:
space:
mode:
authorSaturneric <[email protected]>2021-07-15 17:42:56 +0000
committerSaturneric <[email protected]>2021-07-15 17:42:56 +0000
commitf232098a23c00e6f92570a97777e2f0457c0e48e (patch)
tree5cb3b4eee477454a6b6decafd876cef1bf9698f6 /src/ui/SendMailDialog.cpp
parentMerge branch 'develop' into main (diff)
downloadGpgFrontend-f232098a23c00e6f92570a97777e2f0457c0e48e.tar.gz
GpgFrontend-f232098a23c00e6f92570a97777e2f0457c0e48e.zip
Add send mail function and its settings.
Diffstat (limited to '')
-rw-r--r--src/ui/SendMailDialog.cpp113
1 files changed, 113 insertions, 0 deletions
diff --git a/src/ui/SendMailDialog.cpp b/src/ui/SendMailDialog.cpp
new file mode 100644
index 00000000..36bcc0ec
--- /dev/null
+++ b/src/ui/SendMailDialog.cpp
@@ -0,0 +1,113 @@
+/**
+ * This file is part of GPGFrontend.
+ *
+ * GPGFrontend is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Foobar is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <https://www.gnu.org/licenses/>.
+ *
+ * The initial version of the source code is inherited from gpg4usb-team.
+ * Their source code version also complies with GNU General Public License.
+ *
+ * The source code version of this software was modified and released
+ * by Saturneric<[email protected]> starting on May 12, 2021.
+ *
+ */
+
+#include "ui/SendMailDialog.h"
+#include "smtp/SmtpMime"
+
+SendMailDialog::SendMailDialog(QWidget *parent) : QDialog(parent), appPath(qApp->applicationDirPath()),
+ settings(RESOURCE_DIR(appPath) + "/conf/gpgfrontend.ini",
+ QSettings::IniFormat) {
+
+ senderEdit = new QLineEdit();
+ senderEdit->setText(defaultSender);
+ recipientEdit = new QLineEdit();
+ subjectEdit = new QLineEdit();
+
+ 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);
+
+ connect(confirmButton, SIGNAL(clicked(bool)), this, SLOT(slotConfirm()));
+
+ this->setLayout(layout);
+ this->setWindowTitle("Send Mail");
+ this->setModal(true);
+ this->setFixedSize(320, 160);
+ this->show();
+}
+
+void SendMailDialog::slotConfirm() {
+
+ 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(defaultSender));
+ message.addRecipient(new EmailAddress("[email protected]"));
+ message.setSubject("GpgFrontend Mail Test");
+
+ // Now add some text to the email.
+ // First we create a MimeText object.
+
+ MimeText text;
+
+ text.setText("Hi,\nThis is a simple email message.\n");
+
+ // Now add it to the mail
+ message.addPart(&text);
+
+ // Now we can send the mail
+ if (!smtp.connectToHost()) {
+ qDebug() << "Connect to SMTP Server Failed";
+ return;
+ }
+ if (!smtp.login()) {
+ qDebug() << "Login to SMTP Server Failed";
+ return;
+ }
+ if (!smtp.sendMail(message)) {
+ qDebug() << "Send Mail to SMTP Server Failed";
+ return;
+ }
+ smtp.quit();
+}