Generalidades
Sendmail está sujeto a los límites de cuota de SMTP. DreamHost recomienda que configures cualquier script que dependa de Sendmail para usar la autenticación SMTP.
Sendmail es un agente de transferencias de correo o mail transfer agent (MTA) que es bien conocido como un proyecto de código abierto, software gratis, y comunidades Unix. Es distribuido como software gratis y software privado. Es usado para enrutar el correo en la Internet para un destinatario específico, y puede ser hecho corriendo el comando de sendmail en un ambiente Shell. Puede ser usado también dentro de un script programado para enviar correo.
Este artículo cubre algunos ejemplos simples de Sendmail.
En los siguientes ejemplos, sólo deberás ajustar el texto que está en negrita.
Usar Sendmail desde el línea de comando
Los siguientes son dos ejemplos de cómo enviar correo desde la línea de comando usando Sendmail.
Ejemplo simple
Revisa el artículo de SSH para ver instrucciones detalladas de como iniciar sesion dentro del servidor web vía SSH. Una vez en sesión, puedes correr el siguiente comando para enviar correo:
[server]$ /usr/sbin/sendmail youremail@example.com Subject: Test Send Mail Hello World control d (this key combination of control key and d will finish the email.)
El ejemplo anterior envía un correo de esta manera:
- La primera línea indica la dirección de correo sendmail enviará el correo PARA.
- El ASUNTO es 'Test Send Mail'
- El cuerpo del mensaje dice 'Hello World'
- El correo de DESTINATARIO solo se muestra como destinatarios no revelados (undisclosed-recipients)
- Cuando se recibe el mensaje, la dirección de correo DE aparecerá como tu usuario @servidor. Por ejemplo, username@servername.dreamhost.com
Agregar correos de REMITENTE y DESTINATARIO
Este ejemplo es el mismo que se mostró anteriormente pero especifica el correo Remitente y Destinatario:
[server]$ /usr/sbin/sendmail youremail@example.com To: differentemail@example.com From: anyone@example.com Subject: Test Send Mail Hello World control d (this key combination will finish the email.)
El ejemplo anterior envía un correo de esta manera:
- La primera línea indica la dirección de correo sendmail enviará el correo electrónico PARA.
- El correo que ingresas en el campo Para no recibe un correo. Solo se muestra como la dirección Para cuando el destinatario real recibe el correo. El destinatario sigue siendo el primer correo que ingresa en la primera línea cuando ejecuta el comando, y también puede ser el mismo si lo deseas.
- La dirección de REMITENTE es lo que ingresaste: anyone@example.com.
- El ASUNTO es lo que ingresaste: Test Send Mail
- El CUERPO del mensaje es lo que ingresaste: Hello World
El correo que ingresas al campo de “To” no recibe el correo, solo se muestra como el correo de “To” cuando el que recibe el correo es el DESTINATARIO o “Recipient”. El destinatario sigue siendo el primer correo que tu ingresas en la primera line cuando corres el comando.
Sendmail en un script de cgi
También puedes usar Sendmail en un script. Esto puede hacerse en muchos lenguajes. El siguiente ejemplo muestra un script de perl cgi.
Crea un archivo llamado perltest.pl con el siguiente código y asegúrate que los permisos del archivo estén en 755 o no correrá.
Mira cómo los campos de Destinatario, Remitente y Asunto no terminan a menos que terminen con /n.
#!/usr/bin/perl use strict; my($mailprog) = '/usr/sbin/sendmail'; my($from_address) ='AnyoneYouWant@example.com'; my($to_address) ='email@example.com'; open (MAIL, "|$mailprog -t $to_address") || die "Can't open $mailprog!\n"; print MAIL "To: $to_address\n"; print MAIL "From: $from_address\n"; print MAIL "Subject: Hello, self. Nice to email myself."; print MAIL "This is still subject line.\n"; print MAIL "This is the body of my message.\n"; print MAIL "Pretty boring, yes?\n"; print MAIL "Goodbye.\n"; close (MAIL);
Este ejemplo envía el correo a email@example.com.