Red de conocimiento informático - Material del sitio web - Cómo enviar correo electrónico usando Perl

Cómo enviar correo electrónico usando Perl

Hay muchas formas de enviar correos electrónicos usando Perl, solo puedes contar:

Mail,

sendmail,

Mail::Mailer,

Mime::Lite

Espera un minuto. Todos estos métodos se pueden utilizar para enviar correos electrónicos, según la ocasión.

1. Modo de correo

Esta forma de llamar a los comandos del sistema es la más sencilla (puede usarse para mis pruebas personales)

my $ mail_title = " test_mail

mi $mail_body = "error ffmpeg";

mi $mail_to = ' xxxxxx @ qq.com

mi $ cmd _ correo = " echo $ correo _ cuerpo \ | correo-s $ correo _ título-CB $ correo _ a ";

Sistema ($ cmd _ correo

2. ::Modo de correo

#!/usr/bin/perl

Usar Mail::Mailer;

mi $ de _ dirección = ""; p>

my $to_address = 'xxxxxxxx@QQ.com gt;'

my $subject = "título del correo";

my $mail_body = "hola mundo ! "

mi $mailer = Mail::mailer-gt; new("sendmail");

mi $mailer-gt; open({ from = gt$from_address,

To = gt$to_address,

Asunto = gt$subject,

}) o morir ("No se puede abrir: $!\n "); >

imprimir $mailer $mail_body

$mailer->close();

3.MIME::Modo Lite

Enviar por correo normal ( probado por mí mismo).

#!/usr/bin/perl

Usar MIME::Lite;

Usar MIME::Words qw(encode_MIME Words);

p>

mi $subject = encode_mimewords("Correo electrónico de prueba", ' Charset ', ' GB 2312 ');

mis $ datos = " prueba

mi $ a _ dirección = 'xxxxxxx@QQ.com';

mi $msg = MIME::Lite-gt; new(

From = gtroot@localhost',

Para = gt$to_address,

Asunto = gt$subject,

Tipo = gttext/html',

Datos = gt$data,

p>

encoding=gtbase64',

) o die 'Error al crear el contenedor: $! ";

$ msg- gt; attr(' content-type . charset ' = gt; GB 2312');

$ msg- gt; send('smtp ',' localhost ', Debug = gt0);

Si el programa anterior encuentra el siguiente mensaje de error:

El comando SMTP mail() falló:

5. 4 lt; root @ localhost gt... La dirección del remitente requiere un nombre de dominio real

Debes verificar tu nombre de host,

#caterpillar/etc/host

Y reemplace "root@localhost" con "root@hostname".

Además, también puede usar MIME::Lite para enviar correos electrónicos HTML chinos para evitar que ESP los detecte como spam.

(Extraído de ',

A = gt$to_address,

Asunto = gt$subject,

Tipo = gttext/html ',

Datos = gt$data,

Codificación = gtbase64',

) o morir "¡Error al crear el contenedor: $!" ";

$ msg- gt; attr(' content-type . charset ' = gt; GB 2312');

$ msg- gt; send('smtp ',' localhost ', Debug = gt0);

}

Algunos puntos de sentido común:

A. es lo que mucha gente ignora

B.MIME: cuando Lite construye letras, no confunda el tipo. Por ejemplo, si es solo un correo electrónico HTML sin archivos adjuntos, el tipo es texto/html. p>

Los correos electrónicos de Webmail, independientemente de si tienen archivos adjuntos o no, son de tipo multiparte/mixto y serán arrojados directamente a la papelera por Gmail

C. carta, normalmente recomiendo usar base64 y quoted-printable.

D. El conjunto de caracteres del tipo de contenido del cuerpo de la carta debe estar configurado correctamente, como el chino GB2312.

E. La última oración $msg-gt;send('smtp','localhost',Debug=gt0) llama a Net::SMTP para enviar el mensaje. Simplemente instale un MTA como Postfix en esta máquina. Lo mejor es que esta IP de envío sea una IP con buena reputación y no en la lista RBL como sorbs, spamcop, spamhaus, etc.

F. Es mejor tener resolución inversa (PTR) al enviar IP; de lo contrario, definitivamente no podrá enviar correos electrónicos como AOL para verificar la solución inversa.

G. Es mejor que la dirección del remitente exista, pero no utilice la dirección de correo electrónico gratuita de un sitio web conocido, como From = gtAbc@126.com ', entonces básicamente no lo hará. ser enviado.

¿Por qué? Debido a que el SPF está configurado en 126.com, lo más probable es que el MTA receptor verifique este SPF. Por supuesto, su IP no tiene un SPF de 126, por lo que no puede pasar la verificación.

La variable h.$data contiene el código HTML del cuerpo de la carta. Este texto no puede tener demasiados enlaces e imágenes, de lo contrario será fácilmente detectado por un software antispam como Spamassassin.

Por último, controlo la frecuencia de envío. El envío masivo alertará a todos los sistemas antispam y lo incluirá en la lista negra.

4. Correo:: Modo enviar correo