Dre4m Shell
Server IP : 85.214.239.14  /  Your IP : 3.144.249.69
Web Server : Apache/2.4.61 (Debian)
System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64
User : www-data ( 33)
PHP Version : 7.4.18
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
MySQL : OFF  |  cURL : OFF  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : OFF
Directory :  /usr/share/doc/libmime-tools-perl/examples/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME SHELL ]     

Current File : /usr/share/doc/libmime-tools-perl/examples/mimepostcard
#!/usr/bin/perl -w

=head1 NAME

mimepostcard - send/output a multipart/alternative message


=head1 SYNOPSIS

Usage:

    mimepostcard /path/to/some/graphic.jpg to@addr.com

You can point it at a .gif file as well.
The special address "-" just causes the message to go to STDOUT.


=head1 DESCRIPTION

This sends a mesasge both as HTML and plain text.
I use "Data"; you would probably use "Path".


=head1 AUTHOR

Eryq, eryq@zeegee.com


=cut

use MIME::Entity;
use strict;
use Getopt::Std;

$SIG{__DIE__} = sub { die "mime_postcard: $_[0]\n" };

#------------------------------
# usage
#------------------------------
sub usage {
    my $problem = join '',@_;
    print STDERR "\n";
    print STDERR "Error: $problem\n" if $problem;
    my @usage;
    if (open O, '<'.$0){
	local($/) = "\n";
	1               while (defined($_ = <O>) and !/^=head1\s+SYNOPSIS/);
	push @usage, $_ while (defined($_ = <O>) and !/^=/);
	close O;
    }
    my $u = join '', @usage; $u =~ s/\A\n+//;
    $u =~ s{\n\n+(\s+)}{\n$1}g;
    print STDERR $u, "\n";
    exit -1;
}

#------------------------------
# main
#------------------------------
sub main {
    
    ### Get options:
    my %opts;
    getopts("", \%opts);

    ### Get graphic:
    my $graphic = shift @ARGV || usage "missing path to graphic\n";
    (-r $graphic) or die "$graphic unreadable\n";
    my $graphic_type;
    if    ($graphic =~ /\.gif$/i)   { $graphic_type = "image/gif" }
    elsif ($graphic =~ /\.jpe?g$/i) { $graphic_type = "image/jpeg" }
    elsif ($graphic =~ /\.png$/i)   { $graphic_type = "image/png" }
    else                            { die "unknown type for: $graphic\n"; }
    my $gid = "my-graphic";
    
    ### Get destination:
    my $dest = shift @ARGV || usage "missing destination\n";

    ### The top-level message:
    my $msg = MIME::Entity->build(To      => $dest,
				  Subject => 'A postcard for you',
				  Type    => 'multipart/alternative');
    
    ### Alternative #1 is the plain text:
    my $plain = $msg->attach(Type => 'text/plain',
			     Data => ["Having a wonderful time... \n",
				      "wish you were looking at HTML \n",
				      "instead of this boring text!\n"]);

    ### Alternative #2 is the HTML-with-content: 
    my $fancy = $msg->attach(Type => 'multipart/related');
    $fancy->attach(Type => 'text/html',
		   Data => [qq< <H1>Hey there!</H1> \n>,
			    qq< Having a <I>wonderful</I> time... \n>,
			    qq< take a look!\n >,
			    qq< <BR><IMG SRC="cid:$gid" ALT="Snapshot"><HR>>
			    ]);
    $fancy->attach(Type => $graphic_type,
		   Path => $graphic,
		   Id   => $gid);

    ### Print or send:
    if ($dest eq '-') {
	$msg->print;
    }
    else {
	$msg->smtpsend();
    }
}
eval { main() }; die "$0: $@" if $@;




Anon7 - 2022
AnonSec Team