File indexing completed on 2024-05-26 05:27:09

0001 /*
0002    SPDX-FileCopyrightText: 2020-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 #include "smtpmailtransport.h"
0007 #include "pimdataexportcore_debug.h"
0008 #include <MailTransport/TransportManager>
0009 
0010 SmtpMailTransport::SmtpMailTransport(const KConfigGroup &group)
0011 {
0012     setName(group.readEntry(QStringLiteral("name")));
0013     const QString hostStr(QStringLiteral("host"));
0014     if (group.hasKey(hostStr)) {
0015         setHost(group.readEntry(hostStr));
0016     }
0017     const QString portStr(QStringLiteral("port"));
0018     if (group.hasKey(portStr)) {
0019         setPort(group.readEntry(portStr, -1));
0020     }
0021     const QString userNameStr(QStringLiteral("user"));
0022     if (group.hasKey(userNameStr)) {
0023         setUserName(group.readEntry(userNameStr));
0024     }
0025     const QString precommandStr(QStringLiteral("precommand"));
0026     if (group.hasKey(precommandStr)) {
0027         setPrecommand(group.readEntry(precommandStr));
0028     }
0029     const QString requiresAuthenticationStr(QStringLiteral("auth"));
0030     if (group.hasKey(requiresAuthenticationStr)) {
0031         setRequiresAuthentication(group.readEntry(requiresAuthenticationStr, false));
0032     }
0033     const QString specifyHostnameStr(QStringLiteral("specifyHostname"));
0034     if (group.hasKey(specifyHostnameStr)) {
0035         setSpecifyHostname(group.readEntry(specifyHostnameStr, false));
0036     }
0037     const QString localHostnameStr(QStringLiteral("localHostname"));
0038     if (group.hasKey(localHostnameStr)) {
0039         setLocalHostname(group.readEntry(localHostnameStr));
0040     }
0041     const QString specifySenderOverwriteAddressStr(QStringLiteral("specifySenderOverwriteAddress"));
0042     if (group.hasKey(specifySenderOverwriteAddressStr)) {
0043         setSpecifySenderOverwriteAddress(group.readEntry(specifySenderOverwriteAddressStr, false));
0044     }
0045     const QString storePasswordStr(QStringLiteral("storepass"));
0046     if (group.hasKey(storePasswordStr)) {
0047         setStorePassword(group.readEntry(storePasswordStr, false));
0048     }
0049     const QString senderOverwriteAddressStr(QStringLiteral("senderOverwriteAddress"));
0050     if (group.hasKey(senderOverwriteAddressStr)) {
0051         setSenderOverwriteAddress(group.readEntry(senderOverwriteAddressStr));
0052     }
0053     const QString encryptionStr(QStringLiteral("encryption"));
0054     if (group.hasKey(encryptionStr)) {
0055         const QString encryptionType = group.readEntry(encryptionStr, QString());
0056         if (!encryptionType.isEmpty()) {
0057             if (encryptionType == QLatin1StringView("TLS")) {
0058                 setEncryption(static_cast<int>(MailTransport::TransportBase::EnumEncryption::TLS));
0059             } else if (encryptionType == QLatin1StringView("SSL")) {
0060                 setEncryption(static_cast<int>(MailTransport::TransportBase::EnumEncryption::SSL));
0061             } else if (encryptionType == QLatin1StringView("None")) {
0062                 setEncryption(static_cast<int>(MailTransport::TransportBase::EnumEncryption::None));
0063             } else {
0064                 qCWarning(PIMDATAEXPORTERCORE_LOG) << "Unknown encryption type " << encryptionType;
0065             }
0066         } else {
0067             qCWarning(PIMDATAEXPORTERCORE_LOG) << "Encryption type is empty. It's a bug";
0068         }
0069         setEncryption(group.readEntry(encryptionStr, 1)); // TODO verify
0070     }
0071     const QString authenticationTypeStr(QStringLiteral("authtype"));
0072     if (group.hasKey(authenticationTypeStr)) {
0073         setAuthenticationType(group.readEntry(authenticationTypeStr, 1)); // TODO verify
0074     }
0075 }
0076 
0077 QString SmtpMailTransport::name() const
0078 {
0079     return mName;
0080 }
0081 
0082 void SmtpMailTransport::setName(const QString &name)
0083 {
0084     mName = name;
0085 }
0086 
0087 QString SmtpMailTransport::host() const
0088 {
0089     return mHost;
0090 }
0091 
0092 void SmtpMailTransport::setHost(const QString &host)
0093 {
0094     mHost = host;
0095 }
0096 
0097 int SmtpMailTransport::port() const
0098 {
0099     return mPort;
0100 }
0101 
0102 void SmtpMailTransport::setPort(int port)
0103 {
0104     mPort = port;
0105 }
0106 
0107 QString SmtpMailTransport::userName() const
0108 {
0109     return mUserName;
0110 }
0111 
0112 void SmtpMailTransport::setUserName(const QString &userName)
0113 {
0114     mUserName = userName;
0115 }
0116 
0117 QString SmtpMailTransport::precommand() const
0118 {
0119     return mPrecommand;
0120 }
0121 
0122 void SmtpMailTransport::setPrecommand(const QString &precommand)
0123 {
0124     mPrecommand = precommand;
0125 }
0126 
0127 bool SmtpMailTransport::requiresAuthentication() const
0128 {
0129     return mRequiresAuthentication;
0130 }
0131 
0132 void SmtpMailTransport::setRequiresAuthentication(bool requiresAuthentication)
0133 {
0134     mRequiresAuthentication = requiresAuthentication;
0135 }
0136 
0137 bool SmtpMailTransport::specifyHostname() const
0138 {
0139     return mSpecifyHostname;
0140 }
0141 
0142 void SmtpMailTransport::setSpecifyHostname(bool specifyHostname)
0143 {
0144     mSpecifyHostname = specifyHostname;
0145 }
0146 
0147 QString SmtpMailTransport::localHostname() const
0148 {
0149     return mLocalHostname;
0150 }
0151 
0152 void SmtpMailTransport::setLocalHostname(const QString &localHostname)
0153 {
0154     mLocalHostname = localHostname;
0155 }
0156 
0157 bool SmtpMailTransport::specifySenderOverwriteAddress() const
0158 {
0159     return mSpecifySenderOverwriteAddress;
0160 }
0161 
0162 void SmtpMailTransport::setSpecifySenderOverwriteAddress(bool specifySenderOverwriteAddress)
0163 {
0164     mSpecifySenderOverwriteAddress = specifySenderOverwriteAddress;
0165 }
0166 
0167 bool SmtpMailTransport::storePassword() const
0168 {
0169     return mStorePassword;
0170 }
0171 
0172 void SmtpMailTransport::setStorePassword(bool storePassword)
0173 {
0174     mStorePassword = storePassword;
0175 }
0176 
0177 QString SmtpMailTransport::senderOverwriteAddress() const
0178 {
0179     return mSenderOverwriteAddress;
0180 }
0181 
0182 void SmtpMailTransport::setSenderOverwriteAddress(const QString &senderOverwriteAddress)
0183 {
0184     mSenderOverwriteAddress = senderOverwriteAddress;
0185 }
0186 
0187 int SmtpMailTransport::encryption() const
0188 {
0189     return mEncryption;
0190 }
0191 
0192 void SmtpMailTransport::setEncryption(int encryption)
0193 {
0194     mEncryption = encryption;
0195 }
0196 
0197 int SmtpMailTransport::authenticationType() const
0198 {
0199     return mAuthenticationType;
0200 }
0201 
0202 void SmtpMailTransport::setAuthenticationType(int authenticationType)
0203 {
0204     mAuthenticationType = authenticationType;
0205 }