#!C:\perl\bin\perl.exe -w
use CGI ':standard';
use CGI::Carp qw(fatalsToBrowser);
use MIME::Entity;
use warnings;
use strict;
# Variables
my $nombre = "No hay nombre";
my $mensaje = "No hay mensaje";
my $fichero = "No hay fichero";
# Pintamos la página web
print
header,
start_html('Envío de consultas'),
h1({align=>'center'},'Envío de consultas'),
hr({width=>'80%'}),
start_multipart_form,
table(
Tr({valign=>'top'},
td("Nombre:"),
td(textfield( -name=>'nombre',
-size=>40,
-maxlength=>80)),
),
Tr({valign=>'top'},
td("Mensaje:"),
td(textarea( -name=>'mensaje',
-default=>'',
-rows=>10,
-columns=>50)),
),
Tr({valign=>'top'},
td("Currículum:"),
td(filefield( -name=>'fichero',
-default=>'Nombre del fichero a enviar',
-size=>50,
-maxlength=>80)),
),
),
submit,
end_form,
;
# Comprobamos si el usuario nos ha pasado algún parámetro
if ( param() ) {
$nombre = param('nombre');
$fichero = param('fichero');
$mensaje = param('mensaje');
# Los sacamos en pantalla, para comprobar
print
hr,
p("Datos enviados:"),
p,"Nombre: $nombre",br,"Mensaje: $mensaje",br,"Fichero: $fichero",
;
# Leemos el fichero enviado
my $contenido = '';
my $fh = upload('fichero');
if ( defined($fh) ) {
my ($bytes,$buffer);
while ( $bytes = read($fh,$buffer, 8192) ) {
$contenido .= $buffer;
}
}
# Creamos el correo electrónico
my $msg = MIME::Entity->build(
Type => "multipart/mixed",
Subject => "Únete a nosotros - $nombre",
);
# Adjuntamos el mensaje si lo hay
if ( $mensaje ) {
$msg->attach(
Data => [ $mensaje, "\r\n"x2 ],
);
}
# Adjuntamos el fichero si lo hay
if ( $fichero ) {
$msg->attach(
Type => uploadInfo($fichero)->{'Content-Type'} || 'application/octet-stream',
Data => [ $contenido ],
Encoding=> 'base64',
);
}
# Tercera forma de envío, con el smtpsend de Mail::Internet
$msg->smtpsend(
Host => 'mail.makros.biz',
Hello => 'mail.makros.biz',
);
}
print end_html;
__END__