- for ('RFC822.HEADER', 'BODY[HEADER]') {
- $want->{$_} or next;
- $self->msg_more(" $_ {".length(${$eml->{hdr}})."}\r\n");
- $self->msg_more(${$eml->{hdr}});
- }
- for ('RFC822.TEXT', 'BODY[TEXT]') {
- $want->{$_} or next;
- $self->msg_more(" $_ {".length($$bref)."}\r\n");
- $self->msg_more($$bref);
- }
- $want->{BODYSTRUCTURE} and
- $self->msg_more(' BODYSTRUCTURE '.fetch_body($eml, 1));
- $want->{BODY} and
- $self->msg_more(' BODY '.fetch_body($eml));
- if (my $partial = $want->{-partial}) {
- partial_emit($self, $partial, $eml);
- }
- $self->msg_more(")\r\n");
- requeue_once($self);
+sub emit_internaldate {
+ my ($self, undef, $smsg) = @_;
+ $self->msg_more(' INTERNALDATE "'.$smsg->internaldate.'"');
+}
+
+sub emit_flags { $_[0]->msg_more(' FLAGS ()') }
+
+sub emit_envelope {
+ my ($self, undef, undef, undef, $eml) = @_;
+ $self->msg_more(' ENVELOPE '.eml_envelope($eml));
+}
+
+sub emit_rfc822_header {
+ my ($self, $k, undef, undef, $eml) = @_;
+ $self->msg_more(" $k {".length(${$eml->{hdr}})."}\r\n");
+ $self->msg_more(${$eml->{hdr}});
+}
+
+# n.b. this is sorted to be after any emit_eml_new ops
+sub emit_rfc822_text {
+ my ($self, $k, undef, $bref) = @_;
+ $self->msg_more(" $k {".length($$bref)."}\r\n");
+ $self->msg_more($$bref);
+}
+
+sub emit_bodystructure {
+ my ($self, undef, undef, undef, $eml) = @_;
+ $self->msg_more(' BODYSTRUCTURE '.fetch_body($eml, 1));
+}
+
+sub emit_body {
+ my ($self, undef, undef, undef, $eml) = @_;
+ $self->msg_more(' BODY '.fetch_body($eml));