QMessageAccountId addAccount(const Parameters ¶ms) { qWarning() << "ADDDDD"; QString name(params["name"]); QString fromAddress(params["fromAddress"]); if (!name.isEmpty()) { QMailAccount account; account.setName(name); account.setStatus(QMailAccount::Enabled, true); account.setStatus(QMailAccount::CanTransmit, true); account.setMessageType(QMailMessage::Email); if (!fromAddress.isEmpty()) { account.setFromAddress(QMailAddress(QString(), fromAddress)); } // Ensure that we initialise to the current version for file storage const QString key("qmfstoragemanager"); QMailAccountConfiguration config; config.addServiceConfiguration(key); QMailAccountConfiguration::ServiceConfiguration &svcCfg(config.serviceConfiguration(key)); svcCfg.setValue("servicetype", "storage"); svcCfg.setValue("version", "101"); if (!QMailStore::instance()->addAccount(&account, &config)) { qWarning() << "Unable to addAccount:" << name; } else { return QmfHelpers::convert(account.id()); } } return QMessageAccountId(); }
bool QmfSettings::updateAccount(QMailAccount *, QMailAccountConfiguration *config) { if (!config->services().contains(serviceKey)) config->addServiceConfiguration(serviceKey); QMailAccountConfiguration::ServiceConfiguration &svcCfg(config->serviceConfiguration(serviceKey)); svcCfg.setValue("version", "101"); svcCfg.setValue("servicetype", "storage"); svcCfg.setValue("basePath", locations[locationSelector->currentIndex()].second); return true; }
bool AccountInfo::accountIsValid() { m_account->setName (m_displayName); m_account->setStatus (QMailAccount::PreferredSender, true); //% "IMAP" if (m_inServerType.compare(qtTrId("xx_imap"), Qt::CaseInsensitive) == 0) { if (!m_config->services().contains(imapServiceKey)) m_config->addServiceConfiguration(imapServiceKey); EmailServiceConfiguration imapConfig (m_config, imapServiceKey); imapConfig.setVersion(100); imapConfig.setType(QMailServiceConfiguration::Source); imapConfig.setValue ("username", m_inUsername); imapConfig.setValue ("password", imapConfig.encode(m_inPassword)); imapConfig.setValue ("server", m_inServerAddress); imapConfig.setIntValue ("port", (m_inPort == -1 ? 143 : m_inPort)); QMailTransport::EncryptType encrypType = QMailTransport::Encrypt_NONE; //% "SSL" if (QString::compare(m_inSecurity, qtTrId("xx_ssl"), Qt::CaseInsensitive) == 0) encrypType = QMailTransport::Encrypt_SSL; //% "TLS" else if (QString::compare(m_inSecurity, qtTrId("xx_tls"), Qt::CaseInsensitive) == 0) encrypType = QMailTransport::Encrypt_TLS; imapConfig.setIntValue ("encryption", encrypType); int interval = EmailSettingsPage::instance()->frequency(); imapConfig.setIntValue("checkInterval", interval); // Todo: the following options will be handled by email settings. // For now, just set them to a good known default value. imapConfig.setIntValue("autoDownload", true); imapConfig.setValue("textSubtype", "plain"); imapConfig.setIntValue("pushEnabled", true); imapConfig.setIntValue("maxSize", 30); imapConfig.setIntValue("canDelete", true); imapConfig.setIntValue("intervalCheckRoamingEnabled", true); imapConfig.setValue("pushFolders", "INBOX"); m_account->setStatus(QMailAccount::CanCreateFolders, true); m_account->setStatus(QMailAccount::CanRetrieve, true); } //% "POP" else if (m_inServerType.compare(qtTrId("xx_pop"), Qt::CaseInsensitive) == 0) { if (!m_config->services().contains(popServiceKey)) m_config->addServiceConfiguration(popServiceKey); EmailServiceConfiguration popConfig (m_config, popServiceKey); popConfig.setVersion(100); popConfig.setType(QMailServiceConfiguration::Source); popConfig.setValue ("username", m_inUsername); popConfig.setValue ("password", popConfig.encode(m_inPassword)); popConfig.setValue ("server", m_inServerAddress); popConfig.setIntValue ("port", (m_inPort == -1 ? 143 : m_inPort)); QMailTransport::EncryptType encrypType = QMailTransport::Encrypt_NONE; //% "SSL" if (QString::compare(m_inSecurity, qtTrId("xx_ssl"), Qt::CaseInsensitive) == 0) encrypType = QMailTransport::Encrypt_SSL; //% "TLS" else if (QString::compare(m_inSecurity, qtTrId("xx_tls"), Qt::CaseInsensitive) == 0) encrypType = QMailTransport::Encrypt_TLS; popConfig.setIntValue ("encryption", encrypType); int interval = EmailSettingsPage::instance()->frequency(); popConfig.setIntValue("checkInterval", interval); // Todo: the following options will be handled by email settings. // For now, just set them to a good known default value. popConfig.setIntValue("autoDownload", true); popConfig.setValue("textSubtype", "plain"); popConfig.setIntValue("pushEnabled", true); popConfig.setIntValue("maxSize", 30); popConfig.setIntValue("canDelete", true); popConfig.setIntValue("intervalCheckRoamingEnabled", true); m_account->setStatus(QMailAccount::CanRetrieve, true); } //% "SMTP" if (m_outServerType.compare(qtTrId("xx_smtp"), Qt::CaseInsensitive) == 0) { m_account->setFromAddress(QMailAddress(m_emailAddress)); if (!m_config->services().contains(smtpServiceKey)) m_config->addServiceConfiguration(smtpServiceKey); EmailServiceConfiguration smtpConfig (m_config, smtpServiceKey); smtpConfig.setVersion(100); smtpConfig.setType(QMailServiceConfiguration::Sink); smtpConfig.setValue("address", m_emailAddress); smtpConfig.setValue("server", m_outServerAddress); smtpConfig.setIntValue("port", (m_outPort == -1 ? 25 : m_outPort)); smtpConfig.setIntValue("authentication", m_outAuthentication); if (m_outAuthentication != 0) { smtpConfig.setValue("smtpusername", m_outUsername); smtpConfig.setValue("smtppassword", smtpConfig.encode(m_outPassword)); } QMailTransport::EncryptType encrypType = QMailTransport::Encrypt_NONE; //% "SSL" if (QString::compare(m_outSecurity, qtTrId("xx_ssl"), Qt::CaseInsensitive) == 0) encrypType = QMailTransport::Encrypt_SSL; //% "TLS" else if (QString::compare(m_outSecurity, qtTrId("xx_tls"), Qt::CaseInsensitive) == 0) encrypType = QMailTransport::Encrypt_TLS; smtpConfig.setIntValue("encryption", encrypType); m_account->setStatus(QMailAccount::PreferredSender, true); QString signature = EmailSettingsPage::instance()->signature(); if (signature.size() > 0) { m_account->setStatus(QMailAccount::AppendSignature, true); m_account->setSignature(signature); } else { m_account->setStatus(QMailAccount::AppendSignature, false); m_account->setSignature(""); } m_account->setStatus(QMailAccount::MessageSink, true); if (!smtpConfig.value("server").isEmpty() && !smtpConfig.value("address").isEmpty()) m_account->setStatus(QMailAccount::CanTransmit, true); } if (!m_config->services().contains(storageServiceKey)) m_config->addServiceConfiguration(storageServiceKey); QMailAccountConfiguration::ServiceConfiguration &svcCfg(m_config->serviceConfiguration(storageServiceKey)); svcCfg.setValue("version", "101"); svcCfg.setValue("servicetype", "storage"); svcCfg.setValue("basePath", ""); if (m_account->id().isValid()) { // We are dealing with an existing account just update the account. QMailStore::instance()->updateAccount(m_account, m_config); } else { QMailStore::instance()->addAccount(m_account, m_config); } QTimer::singleShot(10, this, SLOT(testAccountConfiguration())); return true; }