void SmsInit::setupAccount() { QMailStore *mailstore = QMailStore::instance(); if (!startMessageServer()) { qCritical("Could not start messageserver"); } QMailAccountIdList accountids = mailstore->queryAccounts(); QMailAccountId accountid; bool found = false; foreach (accountid, accountids) { QMailAccount account = QMailAccount(accountid); if (account.messageSources().contains("sms", Qt::CaseInsensitive)) { found = true; break; } }
bool detectStandardFolder(const QMailAccountId &accountId, StandardFolderInfo standardFolderInfo) { QMailFolderId folderId; QMailAccount account = QMailAccount(accountId); QMailFolderKey accountKey(QMailFolderKey::parentAccountId(accountId)); QStringList paths = standardFolderInfo._paths; QMailFolder::StandardFolder standardFolder(standardFolderInfo._standardFolder); quint64 messageFlag(standardFolderInfo._messageFlag); quint64 flag(standardFolderInfo._flag); QMailFolderIdList folders; if (!paths.isEmpty()) { QMailFolderKey exactMatchKey = QMailFolderKey::displayName(paths, QMailDataComparator::Includes); folders = QMailStore::instance()->queryFolders(exactMatchKey & accountKey); if (folders.isEmpty()) { QMailFolderKey pathKey; foreach (const QString& path, paths) { pathKey |= QMailFolderKey::displayName(path, QMailDataComparator::Includes); }
bool WriteMail::buildMail(bool includeSignature) { QMailAccountId accountId(m_accountSelection->itemData(m_accountSelection->currentIndex()).value<QMailAccountId>()); // Ensure the signature of the selected account is used if (accountId.isValid() && includeSignature) { m_composerInterface->setSignature(signature(accountId)); } // Extract the message from the composer QMailMessage newMail = m_composerInterface->message(); // Retain the old mail properties if they're configured newMail.setId(mail.id()); newMail.setParentFolderId(mail.parentFolderId()); newMail.setContentScheme(mail.contentScheme()); newMail.setContentIdentifier(mail.contentIdentifier()); newMail.setServerUid(mail.serverUid()); newMail.setCustomFields(mail.customFields()); newMail.setDate(QMailTimeStamp::currentDateTime()); newMail.setStatus(QMailMessage::Outgoing, true); newMail.setStatus(QMailMessage::ContentAvailable, true); newMail.setStatus(QMailMessage::PartialContentAvailable, true); newMail.setStatus(QMailMessage::Read, true); if (accountId.isValid()) { newMail.setParentAccountId(accountId); newMail.setFrom(QMailAccount(accountId).fromAddress()); } if (!newMail.parentFolderId().isValid()) { newMail.setParentFolderId(QMailFolder::LocalStorageFolderId); } if (m_precursorId.isValid()) { newMail.setInResponseTo(m_precursorId); newMail.setResponseType(m_replyAction); QMailMessage precursor(m_precursorId); // Set the In-Reply-To and References headers in our outgoing message QString references(precursor.headerFieldText("References")); if (references.isEmpty()) { references = precursor.headerFieldText("In-Reply-To"); } QString precursorId(precursor.headerFieldText("Message-ID")); if (!precursorId.isEmpty()) { newMail.setHeaderField("In-Reply-To", precursorId); if (!references.isEmpty()) { references.append(' '); } references.append(precursorId); } if (!references.isEmpty()) { // TODO: Truncate references if they're too long newMail.setHeaderField("References", references); } } mail = newMail; return true; }