public function send($outbox=null)
    {

        if($outbox instanceof Writer){
            self::$outbox = $outbox;
        } elseif(!self::$outbox){
            self::$outbox = new Writer();
        }

        if($this->onBeforeSend($this) !== false){
            
            self::$outbox->addEmailToOutbox($this);

            //return if sent
            return self::$outbox->send();
        }

    }