public function process($raw_mail) { $incoming_message = $this->parser->parse($raw_mail); $user = $incoming_message->getRecipient()->getUser(); $artifact = $incoming_message->getRecipient()->getArtifact(); $this->logger->debug("Receiving new follow-up comment from " . $user->getUserName()); if (!$artifact->userCanUpdate($user)) { $this->logger->info("User " . $user->getUnixName() . " has no right to update the artifact #" . $artifact->getId()); return; } $body = $this->citation_stripper->stripText($incoming_message->getBody()); $artifact->createNewChangeset(array(), $body, $user, true, Tracker_Artifact_Changeset_Comment::TEXT_COMMENT); }
public function process($raw_mail) { $raw_mail_parsed = $this->parser->parse($raw_mail); try { $changeset = $this->createChangeset($raw_mail_parsed); if ($changeset) { $this->linkRawMailToChangeset($raw_mail, $changeset); } } catch (Tracker_Artifact_MailGateway_MultipleUsersExistException $e) { $this->logger->debug('Multiple users match with ' . $raw_mail_parsed['headers']['from']); $this->notifier->sendErrorMailMultipleUsers($raw_mail_parsed); } catch (Tracker_Artifact_MailGateway_RecipientUserDoesNotExistException $e) { $this->logger->debug('No user match with ' . $raw_mail_parsed['headers']['from']); $this->notifier->sendErrorMailNoUserMatch($raw_mail_parsed); } catch (Tracker_Exception $e) { $this->logger->error($e->getMessage()); $this->notifier->sendErrorMailTrackerGeneric($raw_mail_parsed); } }
public function process($raw_mail) { $raw_mail_parsed = $this->parser->parse($raw_mail); try { $incoming_message = $this->incoming_message_factory->build($raw_mail_parsed); $body = $this->citation_stripper->stripText($incoming_message->getBody()); $tracker_artifactbyemail = new Tracker_ArtifactByEmailStatus($incoming_message->getTracker(), $this->tracker_plugin_config); if ($tracker_artifactbyemail->canCreateArtifact() || $tracker_artifactbyemail->canUpdateArtifact()) { $this->createChangeset($incoming_message, $body, $raw_mail); } else { $this->logger->info('An artifact for the tracker #' . $incoming_message->getTracker()->getId() . ' has been received but this tracker does not allow create/reply by mail or' . ' his configuration is not compatible with this feature'); $this->notifier->sendErrorMailTrackerGeneric($raw_mail_parsed); } } catch (Tracker_Artifact_MailGateway_MultipleUsersExistException $e) { $this->logger->debug('Multiple users match with ' . $raw_mail_parsed['headers']['from']); $this->notifier->sendErrorMailMultipleUsers($raw_mail_parsed); } catch (Tracker_Artifact_MailGateway_RecipientUserDoesNotExistException $e) { $this->logger->debug('No user match with ' . $raw_mail_parsed['headers']['from']); $this->notifier->sendErrorMailNoUserMatch($raw_mail_parsed); } catch (Tracker_Exception $e) { $this->logger->error($e->getMessage()); $this->notifier->sendErrorMailTrackerGeneric($raw_mail_parsed); } }
private function isATokenMail($raw_mail) { $raw_mail_parsed = $this->parser->parse($raw_mail); return strpos($raw_mail_parsed['headers']['to'], trackerPlugin::EMAILGATEWAY_TOKEN_ARTIFACT_UPDATE) !== false; }