Hallo allerseits,
ich habe ein simples Skript, das über MIME::Lite parametrisiert (Getopt::Long) Mails versenden soll. Wenn ich den Body einer Nachricht mit einem '\n' übergebe, wird dieser aber nicht als Zeilenumbruch in der Mail versendet. Setze ich den Body im Skript selbst auf den gleichen String, sehe ich in der versendeten Mail den gewünschten Zeilenumbruch.
Hier mal das besagte Skript zum selber nachvollziehen:
Code:
#!/usr/bin/perl
use strict;
use Getopt::Long;
use MIME::Lite;
my $server = '';
my $user = '';
my $password = '';
my $to = '';
my $from = '';
my $subject = '';
my $body = '';
GetOptions("server=s" => \$server, "user=s" => \$user, "password=s" => \$password, "from=s" => \$from, "to=s" => \$to, "subject=s" => \$subject, "body=s" => \$body );
#
# setzt man hier den gleichen String neu, funktioniert es
#
#$body = "Hallo\nNewline";
my $msg = MIME::Lite->new(
From => $from,
To => $to,
Subject => $subject,
Type => 'TEXT',
Data => $body
);
$msg->send('smtp', "$server", Timeout=>60);
exit 0;
In der Mail steht dann Aufruf über:
Code:
./test2.pl --body="Hallo\nNewline" --server='mail.example.com' --to='Max Mustermann <max@mustermann.de>' --from='Jon Doe <jon@doe.de>' --subject='foobar'
Wie bekomme ich das Newline über Getopt::Long richtig übergeben?
Vielen Dank schonmal für alle Hinweise.
Viele Grüße, pertze
Lesezeichen