¿Cómo enviar un correo electrónico con mi servidor CentOS?


21

Acabo de construir un servidor doméstico modesto usando CentOS 5.5. Quiero que el servidor pueda enviar correos electrónicos a mi cuenta de Gmail u otras cuentas de correo electrónico para varias cosas, como trabajos cron. También sería bueno poder enviar correos electrónicos a través de aplicaciones PHP que también ejecuto / desarrollo en el servidor. O incluso poder que el servidor envíe correos electrónicos a través del comando de correo.

Sé que hay un millón de resultados de búsqueda de Google sobre la configuración de su servidor Linux como un servidor de correo electrónico o la configuración de sendmail, etc. Pero no parecen ser lo que estoy buscando ... al menos no lo creo. No estoy tratando de configurar un servidor corporativo que otros clientes puedan conectar para enviar correos electrónicos o cualquier cosa complicada como esa.

Solo quiero que mi servidor me envíe correos electrónicos sobre cosas. Parece que debería ser simple ... ¿Alguien puede señalarme en la dirección correcta?

ACTUALIZAR

Según la solicitud de los usuarios a continuación, probé este comando:

/bin/mail -s "My Subject" "myaddress@gmail.com" < /home/john/test

Sin errores ni nada. Pero el correo electrónico nunca apareció en mi bandeja de entrada. Aquí está mimaillog

Oct 27 00:52:19 localhost sendmail[13702]: o9R6qJhU013702: from=root, size=10906, class=0, nrcpts=1, msgid=<201010270652.o9R6qJhU013702@localhost.localdomain>, relay=root@localhost
Oct 27 00:52:19 localhost sendmail[13703]: o9R6qJOd013703: from=<root@localhost.localdomain>, size=11209, class=0, nrcpts=1, msgid=<201010270652.o9R6qJhU013702@localhost.localdomain>, proto=ESMTP, daemon=MTA, relay=localhost.localdomain [127.0.0.1]
Oct 27 00:52:19 localhost sendmail[13702]: o9R6qJhU013702: to=myaddress@gmail.com, ctladdr=root (0/0), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=40906, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (o9R6qJOd013703 Message accepted for delivery)

¿Alguna pista?


1
¿Has probado? ¿Qué tipo de problemas estás viendo?
Ignacio Vazquez-Abrams

No estoy seguro de lo que estoy buscando. Busco en Google y veo tutoriales para configurar un servidor de correo Linux. ¿Es eso lo que quiero?
Jake Wilson el

Acabo de notar que esto aún no había sido respondido. Por curiosidad, ¿lo has descubierto? ¿Verificó si la máquina figuraba en PBL? spamhaus.org/pbl
Belmin Fernández

No lo puse a trabajar. Todavía no he pasado por el proceso de instalación de sendmail, porque los carteles a continuación implican que no debería ser necesario enviar un solo correo electrónico. No puedo imaginar que mi pequeño servidor doméstico aparezca en una lista de spam, ya que nunca antes había enviado un correo electrónico.
Jake Wilson, el

Incluso probé el comando simple que enumeré arriba y lo envié a una cuenta de correo electrónico de 10minutemail.com con el mismo resultado y el mismo mensaje de registro
Jake Wilson, el

Respuestas:


13

/bin/mail -s "Enter Subject Line here" -a /home/.../whateverFileYouWantAttached "you@YourEmailAddress" < /home/me/textBody.letter

pruebe el comando anterior :)


1
+1 No necesita un servidor de correo en el sistema para enviar correo, al igual que no necesita un servidor de correo en su escritorio para enviar correo. El programa de correo está bien.
dunxd

1
Intenté este comando y no funcionó. Sin errores ni nada. Simplemente no aparece ningún correo en mi bandeja de entrada de Gmail. Mira arriba lo que dice mi maillog
Jake Wilson,

Entonces ... ¿alguna razón por la que esto no funciona para mí? ¿Qué registro debo mirar para determinar por qué no recibo ningún correo?
Jake Wilson, el

6

Respuesta simple:

Configura sendmail . Dependerá de su distribución, pero esto no es difícil en absoluto. Si tiene alguna pregunta específica, pregunte.

Respuesta complicada:

Si está preguntando esto, probablemente no debería simplemente saltar el arma y configurar sendmail por el momento.

Deberá tener en cuenta algunas cosas:

  1. ¿Su ISP le permite enviar correos electrónicos? Es posible que se encuentre en un rango de IP que no sea del servidor y, por lo tanto, muchos proveedores de correo electrónico lo bloquearán por completo.

  2. ¿Qué dirección usará como su dirección de origen? ¿Está autorizado para enviar desde esta dirección (SPF, DomainKeys, etc.)? De lo contrario, los proveedores de correo electrónico pueden detectar sus mensajes como spam, y con razón.

  3. Por último, pero no menos importante: ¿realmente necesita usar su propio servicio SMTP? ¿Alguna razón por la que usar su ISP no es lo suficientemente bueno?

En aquellos días, configurar un servidor SMTP no era un gran problema. Hoy en día, la configuración puede ser más fácil, pero configurarlo para que realmente envíe mensajes a los buzones de las personas es un desafío.


3

Puedo confirmar que ninguna de las sugerencias anteriores está funcionando en mi sistema CentOS en casa tampoco, ni una sola. Lo cual es molesto!

Luego intenté lo mismo en una nueva instancia de Amazon que ejecuta CentOS 6.4, e incluso con la configuración predeterminada, puedo enviar correo sin problemas. Todo lo que tenía que hacer era

yum install mailx

después de lo cual el envío de correo como se describe anteriormente funciona como un encanto. La instalación de complicaciones como sendmail NO es necesaria para lo que Jakub está tratando de hacer.

Debe ser una configuración con mi ISP, ya que aquí no tengo un firewall configurable.


2

Debes hacer lo siguiente:

  1. sudo yum install postfix telnet mailx
  2. sudo /etc/init.d/postfix start
  3. sudo vi /etc/postfix/main.cf
  4. Cambio mydestination = mydomain.com, localhost.mydomain.com, localhost

    a

    mydestination = localhost.mydomain.com, localhost

Pruebe usando lo siguiente desde la línea de comando

  1. mail address@example.com Asunto:
  2. Correo electrónico de prueba de demoslice.com Prueba
  3. cuerpo del correo electrónico.
  4. .

No. 4: solo hay un punto final para completar el cuerpo del correo electrónico. Ahora deberías tener correo.

Lo anterior le proporcionará un MTA (Agente de transferencia de correo) en funcionamiento. Puede encontrar algunos recursos que lo ayudarán con una configuración más avanzada en los artículos de slicehost sobre configuración de correo electrónico para CentOS (desplácese hacia abajo hasta la sección CentOS y correo electrónico). Realmente debería considerar configurar lo siguiente correctamente: nombre de host, RDNS (DNS inverso) y registros SPF (Marco de políticas del remitente) con su proveedor de DNS.


Esta es una respuesta brillante, corta y funciona.
monkjack

1

¿Ha modificado su /etc/mail.rc para configurar la dirección smtp?


1
El contenido de /etc/mail.rces set ask askcc append dot save crt ignore Received Message-Id Resent-Message-Id Status Mail-From Return-Path Via¿Qué sugieres que haga?
Jake Wilson, el

0

Intente instalar postfix y configure el destino en el archivo de configuración, incluso si funciona con sendmail.


0

Postfix está en el camino correcto, pero a menos que Gmail piense que eres al menos remotamente legítimo (por ejemplo, no eres un spammer) es muy poco probable que recibas tu correo.

El proceso es un poco complicado para publicar aquí, pero la forma más simple que he encontrado de lograr esto (y recibir su correo) es configurar Postfix como un relé, utilizando su propia cuenta de Gmail como transporte.

El proceso que uso se detalla aquí:

http://rs20.mine.nu/w/2011/07/gmail-as-relay-host-in-postfix/

No es necesario configurar certificados autofirmados (según sendmail) y, en mi experiencia, ¡simplemente funciona!


0

La solución fácil no es sendmail, sino sendEmail:

http://caspian.dotconf.net/menu/Software/SendEmail/#download

Un script perl que se configura fácilmente para enviar a través de cualquier servidor SMTP al que pueda acceder: lo uso para enviar a través de cuentas de Gmail todo el tiempo, pero también funciona para SMTP ordinario sobre TCP en el puerto 25, etc.

Por lo general, envuelvo el script perl sendEmail con mi propio script de shell para Gmail:

#!/bin/bash

# Send gmail through an account specified in ~/.sendGmailAuthFile (or file identified with -k.)
# The auth file must have values for the -f (from@domain) and -xp (password) options of sendEmail,
# structured as:
#
#    user=me.surnamen@gmail.com
#    pwd=xxxxxxx
#
# We will fill in the rest, and other params are passed through to sendEmail
#
# Example: sendGmail -u "My subject line" -t "test@whatever.com" < message.txt

function sendGmailImmed {
        local authFile="$HOME/.sendGmailAuthFile"
        for arg in "$@"; do
                if [[ "$arg" == "-k" ]]; then
                        shift
                        authFile="$1"
                        shift
                fi
        done
        initAuthFile $authFile
        source $authFile

        sendEmail -f $user -xu $user -xp $pwd -s smtp.gmail.com:587 -o tls=yes "$@"
}

function initAuthFile {
        # If the authfile doesn't exist, we'll create a dummy:
        if [[ ! -f $1 ]]; then
                echo "# sendGmail authentication file: " > $1
                echo "user=my.name@gmail.com" >> $1
                echo "pwd=my-password" >> $1
                echo "A shell auth file has been created as $1"
        fi
}

if [[ -z $sourceMe ]]; then
        sendGmailImmed "$@"
fi
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.