public static function send($recipient, $subject, $body, $options=[]) {
	if (empty(self::$mailer)) {
		self::login();
	}
	
	if (ENVIRONMENT != 'production') {
		$recipient = self::protect_emailaddress($recipient);
		if (isset($options['cc'])) {
			$options['cc'] = self::protect_emailaddress($options['cc']);
		}
		if (isset($options['bcc'])) {
			$options['bcc'] = self::protect_emailaddress($options['bcc']);
		}
		if (isset($options['reply_to'])) {
			$options['reply_to'] = self::protect_emailaddress($options['reply_to']);
		}
		
		$subject = '['.ENVIRONMENT.'] '.$subject;
	}
	
	$sender = [self::$config['from'] => self::$config['name']];
	
	$message = new \Swift_Message();
	$message->setFrom($sender);
	$message->setTo($recipient);
	$message->setSubject($subject);
	$message->setBody($body);
	
	if (isset($options['cc'])) {
		$message->setCc($options['cc']);
	}
	if (isset($options['bcc'])) {
		$message->setBcc($options['bcc']);
	}
	if (isset($options['reply_to'])) {
		$message->setReplyTo($options['reply_to']);
	}
	if (isset($options['attachment'])) {
		$attachment = \Swift_Attachment::fromPath($options['attachment']['path'], $options['attachment']['mime']);
		$message->attach($attachment);
	}
	
	self::$mailer->send($message);
}