diff --git a/app/Classes/FTN/Message.php b/app/Classes/FTN/Message.php index 72970c0..a8a2141 100644 --- a/app/Classes/FTN/Message.php +++ b/app/Classes/FTN/Message.php @@ -107,6 +107,8 @@ class Message extends FTNBase private Collection $via; // The path the message has gone using Via lines (Netmail) private Collection $unknown; // Temporarily hold attributes we have no logic for. + public bool $packed = FALSE; // Has the message been packed successfully + // Convert characters into printable chars // https://int10h.org/oldschool-pc-fonts/readme/#437_charset private const CP437 = [ @@ -157,6 +159,7 @@ class Message extends FTNBase { $this->domain = $domain; + $this->header = []; $this->kludge = collect(); $this->msgid = ''; @@ -392,9 +395,7 @@ class Message extends FTNBase */ public function __toString(): string { - $return = ''; - - $return .= pack(collect(self::header)->pluck(1)->join(''), + $return = pack(collect(self::header)->pluck(1)->join(''), $this->ff, $this->tf, $this->fn, diff --git a/app/Classes/FTN/Packet.php b/app/Classes/FTN/Packet.php index b64ec06..b14f853 100644 --- a/app/Classes/FTN/Packet.php +++ b/app/Classes/FTN/Packet.php @@ -254,8 +254,10 @@ class Packet extends FTNBase if (is_null($return)) { $return = $this->createHeader(); - foreach ($this->messages as $o) - $return .= "\02\00".(string)$o; + foreach ($this->messages as $o) { + if ($o->packed) + $return .= "\02\00".(string)$o; + } $return .= "\00\00"; } diff --git a/app/Models/Netmail.php b/app/Models/Netmail.php index e9a337c..331a908 100644 --- a/app/Models/Netmail.php +++ b/app/Models/Netmail.php @@ -96,6 +96,8 @@ final class Netmail extends Model implements Packet $o->via = $via; + $o->packed = TRUE; + } catch (\Exception $e) { Log::error(sprintf('%s:Error converting netmail [%s] to a message (%d:%s)',self::LOGKEY,$this->id,$e->getLine(),$e->getMessage())); dump($this);