¿Cómo se envía realmente el correo cuando utilizo el comando "mail" de Linux?


17

¿Qué cuenta de correo electrónico se utiliza para enviar un correo electrónico cuando se utiliza el mailcomando desde la terminal de Linux como en:

echo "Body of email" | mail -s "Subject" abc@def.com

Si no se envían los correos electrónicos, ¿es necesario especificar el nombre de usuario y la contraseña de una dirección de correo electrónico de envío? Todos los mailtutoriales que he leído no especifican nada sobre la dirección del remitente.

Editar: Entonces, si recibo un mensaje de error en el sentido de "No se admite el envío a dominios remotos", ¿significa esto que mi ISP ha bloqueado el envío de correos electrónicos? ¿Hay alguna forma de evitar esto? Gracias.

Respuestas:


12

¿Qué cuenta de correo electrónico se utiliza para enviar un correo electrónico cuando se utiliza el comando de correo desde el terminal de Linux como en:

En las configuraciones predeterminadas, es la misma cuenta que usó para iniciar sesión. Su computadora tiene instalado un programa de servidor de correo (un MTA); generalmente Postfix o Exim4, a veces Sendmail o qmail.

La dirección de correo electrónico de esta cuenta es o , de donde se puede obtener el FQDN . Sin embargo, en este momento no puede recibir correo a esta cuenta, ya que el MTA está configurado para "correo local solamente" (como dice el mensaje de error a continuación) y no aceptará mensajes de afuera.your-login@hostnameyour-login@fqdnhostname -f

Editar: Entonces, si recibo un mensaje de error en el sentido de "No se admite el envío a dominios remotos", ¿significa esto que mi ISP ha bloqueado el envío de correos electrónicos? ¿Hay alguna forma de evitar esto?

No; Este mensaje de error es devuelto por su propia computadora. El servidor de correo está configurado para transferir solo el correo local , de un usuario a otro (más comúnmente, desde el demonio cron si falla un trabajo cron ). Por lo general, estos mensajes van a y son legibles utilizando , , , o programas similares. (IIRC, Thunderbird también tenía la capacidad de importar bobinas de correo locales)./var/mail/loginmailmuttre-alpine

No es difícil volver a configurar el servidor de correo para enviar y recibir correo desde / hacia otros sitios; dependiendo del MTA instalado y de la distribución de Linux, incluso un solo comando podría ser suficiente: por ejemplo, dpkg-reconfigure postfixsi el sistema es Debian con Postfix.

Sin embargo, supongo que está usando esto en una computadora personal, por lo que sería mejor usar una cuenta de correo externa, por ejemplo, su dirección de Gmail si tiene una. Averigüe qué MTA está instalado (en Ubuntu / Debian, dpkg -S /usr/sbin/sendmailse lo dirá), luego busque " program-name relay gmail" en google para obtener un tutorial.

Alternativamente, instale un MTA específicamente diseñado para retransmitir; msmtpy esmtpson buenas opciones y fáciles de configurar.


Gracias por toda la ayuda. El comando pastebin que sugirió terminó satisfaciendo mis necesidades. Trabajaré para configurar un servidor inteligente para la retransmisión de correo.
user001

4

Es el nombre de la cuenta y el nombre de host del usuario remitente, por ejemplo root@myserver. No es necesariamente un buzón real que puede recibir correos electrónicos del exterior.


2
@ user001 ¿ Ayuda esto ?
Daniel Beck

2
@ user001: en tales casos, puede echar un vistazo a pastebins , algunos de los cuales son fáciles de usar desde la línea de comandos. Por ejemplo, curl -Fsprunge=\<- http://sprunge.us < myfile.
user1686

1
@ user001: ¿Tienes el exim4demonio ejecutándose? ¿ sudo mailqLista el mensaje? ¿Ha verificado los registros del servidor emisor ( /var/log/exim4/mainlog) y del destinatario (si es posible)?
user1686

1
@ user001: Podría ser que su ISP esté bloqueando la conexión. Esto es especialmente común en las conexiones domiciliarias: todo al puerto 25 simplemente se cae, para reducir las cantidades masivas de spam enviadas por las PC infectadas. (Sin embargo, aún puede configurar la retransmisión , que usa un puerto diferente y autenticación SMTP).
user1686

1
@ user001: la retransmisión se realiza a través de otro servidor de correo (a veces llamado "smarthost"). Los administradores de su red pueden ayudar con esto, si la academia tiene su propio dominio de correo. De lo contrario, puede configurar su servidor para enviar desde su Gmail o un buzón similar; Tutoriales aquí .
user1686

4

El comando de correo envía correos bajo la cuenta actual, es decir, nombre de usuario @ dominio; sin embargo, por lo general, los proveedores de servicios de Internet evitan que los usuarios ejecuten sus propios servidores de correo (bloqueando los puertos relevantes) para evitar el correo no deseado y, por lo tanto, su correo electrónico no se envía.

Pero el problema de envío también podría estar relacionado con la configuración de su máquina.

Editar: habilitar el correo para enviar correos electrónicos, por ejemplo, desde gmail. Ponga la siguiente información en su archivo ~ / .mailrc, que proporciona una configuración básica para el correo. Sin embargo, asegúrese de que este archivo solo sea accesible para usted (usando chmod 600 ~ / .mailrc)

account gmail {
set smtp-use-starttls
set ssl-verify=ignore
set smtp=smtp.gmail.com:587
#set smtp-auth=login
set smtp-auth-user=name@gmail.com
set smtp-auth-password=pass
set from=name@gmail.com
}

En cuyo caso, el correo electrónico vendrá de "nombre@gmail.com".


@ user001: ¿Desea poder enviar correos electrónicos (por ejemplo, desde scripts) o también recibirlos?
Karolos

Solo para poder enviar un mensaje desde un script. Gracias.
user001

2
Tenga en cuenta que esta mailrcsintaxis es específica de heirloom-mailx. Algunos sistemas pueden venir con GNU mailutilso BSD mailx, los cuales se quejarían de errores de sintaxis. (Si eso sucede, sugiero instalar heirloom-mailx- o incluso mejor, mutto re-alpine.)
user1686

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.