public function sendMessage($messageID) {
		// Check message, subject, and additional arguments to include
		list($subject, $message) = $this->generateMessageTemplate($messageID);
		if(empty($subject) || empty($message)) {
			$this->log("Skipping sending message. None configured for $messageID");
			return true;
		}

		// Save last sent message
		$this->LastMessageSent = $messageID;
		$this->write();

		// Setup messaging arguments
		$arguments = array_merge(
			$this->getConfigSetting('PipelineConfig', 'ServiceArguments') ?: array(),
			array('subject' => $subject)
		);

		// Send message to author
		if($author = $this->Author()) {
			$this->log("Pipeline sending $messageID message to {$author->Email}");
			$this->messagingService->sendMessage($this, $message, $author, $arguments);
		} else {
			$this->log("Skipping sending message to missing author");
		}

		// Get additional recipients
		$recipients = $this->getConfigSetting('PipelineConfig', 'Recipients', $messageID);
		if(empty($recipients)) {
			$this->log("Skipping sending message to empty recipients");
		} else {
			$recipientsStr = is_array($recipients) ? implode(',', $recipients) : $recipients;
			$this->log("Pipeline sending $messageID message to $recipientsStr");
			$this->messagingService->sendMessage($this, $message, $recipients, $arguments);
		}
	}