+ my (@addr_objects) = Email::Address->parse($self->{$item});
+ next unless (scalar @addr_objects);
+
+ foreach my $addr_obj (@addr_objects) {
+ push @{ $addresses{$item} }, $addr_obj->address;
+ my $phrase = $addr_obj->phrase();
+ if ($phrase) {
+ $phrase =~ s/^\"//;
+ $phrase =~ s/\"$//;
+ $addr_obj->phrase($self->mime_quote_text($phrase));
+ }
+
+ $headers .= sprintf("%s: %s\n", ucfirst($item), $addr_obj->format()) unless $driver->keep_from_header($item);
+ }
+ }
+
+ $headers .= sprintf("Subject: %s\n", $self->mime_quote_text($self->recode($self->{subject}), 60));
+
+ $driver->start_mail(from => $self->{from}, to => [ map { @{ $addresses{$_} } } qw(to cc bcc) ]);
+
+ $driver->print(qq|${headers}Message-ID: <$msgid>