diff --git a/src/mailscheduler_p.cpp b/src/mailscheduler_p.cpp --- a/src/mailscheduler_p.cpp +++ b/src/mailscheduler_p.cpp @@ -30,6 +30,7 @@ #include #include #include +#include #include #include @@ -40,6 +41,8 @@ class Q_DECL_HIDDEN MailScheduler::Private { public: + KIdentityManagement::Identity identityForIncidence(const KCalCore::IncidenceBase::Ptr &incidence) const; + KIdentityManagement::IdentityManager *m_identityManager = nullptr; MailClient *m_mailer = nullptr; }; @@ -59,6 +62,14 @@ delete d; } +KIdentityManagement::Identity MailScheduler::Private::identityForIncidence(const KCalCore::IncidenceBase::Ptr &incidence) const +{ + Q_ASSERT(incidence); + const auto organizer = incidence->organizer(); + const QString organizerEmail = organizer ? organizer->email() : CalendarUtils::email(); + return m_identityManager->identityForAddress(organizerEmail); +} + void MailScheduler::publish(const KCalCore::IncidenceBase::Ptr &incidence, const QString &recipients) { @@ -69,7 +80,7 @@ const QString messageText = mFormat->createScheduleMessage(incidence, KCalCore::iTIPPublish); d->m_mailer->mailTo(incidence, - d->m_identityManager->identityForAddress(CalendarUtils::email()), + d->identityForIncidence(incidence), CalendarUtils::email(), CalendarSettings::self()->bcc(), recipients, messageText, CalendarSettings::self()->mailTransport()); @@ -86,7 +97,7 @@ const QString messageText = mFormat->createScheduleMessage(incidence, method); d->m_mailer->mailTo(incidence, - d->m_identityManager->identityForAddress(Akonadi::CalendarUtils::email()), + d->identityForIncidence(incidence), Akonadi::CalendarUtils::email(), CalendarSettings::self()->bcc(), recipients, messageText, @@ -108,7 +119,7 @@ method == KCalCore::iTIPAdd || method == KCalCore::iTIPDeclineCounter) { d->m_mailer->mailAttendees(incidence, - d->m_identityManager->identityForAddress(CalendarUtils::email()), + d->identityForIncidence(incidence), CalendarSettings::self()->bcc(), messageText, CalendarSettings::self()->mailTransport()); } else { @@ -119,7 +130,7 @@ } d->m_mailer->mailOrganizer(incidence, - d->m_identityManager->identityForAddress(CalendarUtils::email()), + d->identityForIncidence(incidence), CalendarUtils::email(), CalendarSettings::self()->bcc(), messageText, subject, CalendarSettings::self()->mailTransport());