
Estoy intentando enviar un correo electrónico HTML desde nuestro servidor CentOS a los usuarios. A largo plazo, crearé un programa COBOL que ejecute el comando para enviar informes al usuario.
Aquí hay algunos detalles.
- CentOS 6.4
- MAU: Mailx
- MTA: Postfix 2.6.6
- Postfix está ejecutando una retransmisión a través de un servidor Exchange.
En cuanto a los comandos que intenté ejecutar. El que más he visto hoy ha sido el siguiente.
$ mailx -a 'Content-Type: text/html' -s "Command Line Test" [email protected] < ./bodytext.html
Después de ejecutar el comando mostrado, aparece un error que dice "Tipo de contenido: texto/html: No existe tal archivo o directorio". Estoy bastante seguro de que después de cierta actualización dejaron de permitir -a como indicador para la designación de tipo de contenido.
También intenté agregar el 'Tipo de contenido: texto/html' al archivo bodytext.html real como la primera línea. No sé qué puedo hacer para enviar el correo electrónico HTML. Algunas de las fuentes que encontré dicen que mailx y postfix no pueden enviar correos electrónicos HTML correctamente. Con suerte, ese no es el caso, pero si lo es, me gustaría saber cuál es su opinión sobre otras tecnologías MAU y MTA.
Respuesta1
Dado que parece tener control total sobre el archivo de texto generado, la forma más sencilla y probablemente más portátil sería involucrarlo /usr/sbin/sendmail
directamente.
/usr/sbin/sendmail -t < complete-mail.txt
Esto requeriría que usted mismo agregue todos los encabezados importantes ( From
, To
, Subject
y Content-Type
). El archivo debería verse así:
From: Company <[email protected]>
To: Customer <[email protected]>
Subject: You are awesome
Content-Type: text/html
<html>…</html>
Postfix agregará encabezados faltantes pero necesarios como Date
.
Respuesta2
¿Leíste siquiera el manual demailx
, especialmente la -a
opción?
-a file
Adjunte el archivo proporcionado al mensaje.
Derespuesta de giles, ya que CentOS está usando esta versión de mailx
:
Con la reliquiacorreo, no hay una manera conveniente. Una posibilidad para insertar encabezados arbitrarios es configurar editheaders=1 y usar un editor externo (que puede ser un script).
## Prepare a temporary script that will serve as an editor. ## This script will be passed to ed. temp_script=$(mktemp) cat <<'EOF' >>"$temp_script" 1a Content-Type: text/html . $r test.html w q EOF ## Call mailx, and tell it to invoke the editor script EDITOR="ed -s $temp_script" heirloom-mailx -S editheaders=1 -s "Subject" to@address <<EOF ~e . EOF rm -f "$temp_script"
Postfix ciertamente puede enviar correos HTML.