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 }