Enviar email desde terminal linux

Imagen de Gabriel_M
+1
0
-1

Hola aar...:

Dentro de Ubuntu mailx permite el envio, lectura y contestación de mensajes de correo electrónico dentro del sistema o de una red.
Se instala mediante:

sudo apt-get install mailx

La manera más sencilla de enviar un mensaje a un usuario de la red es ejecutar:

mail usuario

Este pregunta el tema (subject)
El cuerpo del mensaje que debe terminar con un punto (.)
Y a quién se le deseaba enviar copias del mismo (Cc)
Tras escribir esto, el mensaje escrito se graba como un archivo de texto (con el mismo nombre que el destinatario del mensaje, y al que se añadirán más mensajes conforme se le vayan enviando a dicho destinatario) en el directorio /var/spool/mail, a la espera de que el usuario destino los lea y vayan siendo eliminados del mismo.

Si usuario está conectado o entra más tarde en cualquier terminal del sistema, recibirá un mensaje de aviso indicando que el sistema ha detectado la llegada de correo para el usuario:

You have mail.

Para realizar la lectura del correo electrónico, simplemente se invoca al programa mail, obteniendo una lista del correo pendiente y esperando el programa a que el usuario lo lea, responda, borre o almacene para más tarde:

mail

Muestra los mensajes pendientes, por responder, con su usuario de origen, la fecha y el tema, con el cursor virtual (>) situado sobre el primero (es decir, indicando sobre cual actuará una orden de lectura, respuesta o borrado), y con un promtp (el carácter &) a la espera de recepción de órdenes sobre que hacer con dicho correo.

Estas órdenes son:

'número' -> Listar el mensaje .
't' -> lista el mensaje actual (el apuntado por >)
'n' -> Pasar al siguiente mensaje y visualizarlo.
'd' -> Borrar mensaje.
'e' -> Editar mensaje
'r' -> Responder mensaje.
'q' -> Salir de mailx.

A la mayoría de estas opciones se les puede pasar un número de mensaje (desde 1 hasta n) para indicar sobre qué mensaje realizar la acción (ejemplo 'd 3' o 'delete 3'). Otras opciones, obtenidas mediante la ayuda de mailx, son:

& ?
Mail Commands
t listar mensaje
n ir al mensaje especificado y listarlo.
e editar mensaje
f ver cabeceras del mensaje
d borrar mensaje
s añadir mensajes a un archivo
u recuperar mensajes borrados
R Responder a los remitentes del mensaje
r Responder al remitente y a todos los destinatarios.
pre hacer ir los mensajes de nuevo a /usr/spool/mail
m enviar mensaje a los usuarios especificados.
q salir grabando mensajes en mbox
h mostrar cabeceras activas.
! permite ejecutar una shell o comandos de shell

En el caso de no disponer de correo en ese momento, mail nos avisa con un:

No mail for usuario

Otro archivo asociado es el archivo .signature de nuestro directorio home, utilizado como archivo de firmas y cuyo contenido es incluido al final de los emails escritos y respondidos por nosotros, pudiendo editarse y rellenarse con cualquier editor estándar de Linux para incluir nuestra firma personal.

Para el envio de correo electrónico o email a direcciones fuera de nuestra red local o de nuestro sistema es necesario sendmail.

Es un agente que extrae dicho correo de /var/spool y lo envia a nuestro Proveedor de Servicios de Internet.

Se instala mediante
sudo apt-get install sendmail

Para iniciarlo

sudo sendmail start

Para detenerlo

sudo sendmail stop

Para configuralo

sudo nano /etc/sendmail.cf  (Editado) 

sudo nano /etc/mail/sendmail.cf

Buscar una linea similar a la siguiente:

# "Smart" relay host (may be null)
DS

Esta linea hay que cambiarla de forma que referencie a nuestro servidor de correo saliente o smtp
Por ejemplo para hotpop debería quedar como:

# "Smart" relay host (may be null)
DSsmtp.hotpop.com

Buscamos una línea similar a la siguiente:

# Who I masquerade as (null for no masquerading)
DM

A esta línea hay que añadirle el dominio de nuestra dirección de correo.
Por ejemplo para hotpop debería quedar como:

# Who I masquerade as (null for no masquerading)
DMhotpop.com

Realizada la configuración, cuando desde un usuario cualquiera se envia un email, mediante el comando mail usuario@proveedor.com.
Dicho email se graba en /var/spool/mqueue a la espera de ser enviado a nuestro ISP quien a su vez lo enviará al usuario, el envíolo hara sendmail en la próxima conexion a Internet, mediante el comando:

sudo sendmail -q

Los mensajes en cola de envío se encuentran en /var/spool/mqueue y podemos consultarlos mediante el comando:

mailq.

Si no queremos recibir una advertencia (warning) cada vez que un mensaje lleve más de X horas sin ser enviado (4 por defecto).

Buscar la linea similar a:

Timeout.queuewarn=4h

Y dejarla asi:

#Timeout.queuewarn=4h

Para recoger todo el correo de todos los servidores POP o IMAP deseados para su posterior recogida desde nuestra máquina y lectura en modo desconectado es necesario fetchmail

Se instala con:

sudo apt-get install fetchmail

Para configurarlo se debe crear un archivo .fetchmailrc en el directorio del usuario

sudo nano /home/usuario/.fetcmailrc

Dicho archivo tiene un formato como el que sigue:

defaults
fetchall
flush
pass8bits

poll servidor_de_correo
proto pop3
user usuario
pass password
to usuario_local

Debe tantos bloques poll/proto/user/pass/to como servidores de correo de donde deseemos recoger el mismo

Las opciones incluidas en este archivo son las siguientes:

* defaults: establece los valores por defecto para fetchmail.
* fetchall: recoge todos los mensajes pendientes en el servidor de correo.
* flush: una vez recogidos los mensajes son borrados del servidor de correo. Para nuestras primeras pruebas es recomendable cambiar este parámetro por keep, para que los mantenga y así no los perdamos en caso de un error de configuración.
* pass8bits: Indica que el mensaje puede contener caracteres de 8 bits (acentos, eñes, etc.).
* Bloque poll/proto/user/pass: Indica las caracteristicas de nuestro servidor de correo. Si disponemos de más de un servidor de correo, se deben incluir tantos bloques de este tipo (repetir la estructura para ambos) como servidores dispongamos.
* poll: Indica el servidor de correo entrante (POP o IMAP) de donde leer el correo.
* proto pop3: Indica que nuestro servidor de correo entrante utiliza POP para la recogida del correo (alternativo a IMAP).
* user y pass: Indican la cuenta del correo y password del usuario. Si nuestro password es numérico hace falta encerrarlo entre comillas dobles "".
* to usuario: Indica a qué cuenta de usuario se le ha de pasar el correo. Usuario ha de ser una cuenta de nuestro sistema Linux, tales como sromero, o root.

Además, este archivo tiene que tener unos permisos de lectura/escritura concretos, debido a que posee nuestro password de correo, cosa que se realiza con la orden chmod:

sudo chmod 0600 .fetchmailrc

La forma de recoger el correo es, estando conectado, ejecutar la orden:

sudo fetchmail

Una vez recogidos los mensajes son depositados por sendmail en /var/spool/mail, de manera que puedan ser accedidos por mailx

Saludos.


Equipo de Ubuntu-es
+1
0
-1
Imagen de SpawnN
+1
0
-1

 Estaria bueno.. Lastima que yo no soy administrador de sistema, es mi viejo..

_______________ 

[URL=http://imageshack.us][IMG]http://img358.imageshack.us/img358/5452/sinnom...

+1
0
-1
Imagen de aaraguz
+1
0
-1

Hola Gabriel, 

gracias por unas instrucciones tan detalladas. He seguido tus indicaciones (excepto ruta config de sendmail, que es /etc/mail/sendmail.cf) y todo se ha instalado bien. He sacado valores de smtp y pop de la pagina de gmail.

Cuando meto mail correo@gmail.com, tras el CC. la consola no hace nada, y tengo que terminar el proceso con Ctrl+Z

¿?????????????????? 

+1
0
-1
Imagen de Gabriel_M
+1
0
-1

Hola aar...:

Busca en /var/spool/mqueue/

Para ver si el mensaje se grabó, si se grabó ejecuta:

sudo sendmail -q

Estando conectado, para enviarlo. 

Saludos.


Equipo de Ubuntu-es
+1
0
-1
Imagen de aaraguz
+1
0
-1

es el mail el q parece tener un problema para funcionar. despues de escribir el mensaje se queda unos minutos pillado. Cuando acaba, miro el /var/spool/mqueue/ y ahi no hay nada.

 

He probado a mandar mensajes con evolution, con la configuracion que proporciona gmail para configurar el correo POP, y funciona bien.

 He probado Mutt también, pero le pasa lo mismo que a mail, se queda pillado y luego no hace nada.

 

No da ningún error, ¿alguna idea de lo que está pasando? 

+1
0
-1
Imagen de Sird
+1
0
-1

No me entero de nada ya se que lo explicaste muy bien pero yo sigo sin enterarme. yo quiero usar la terminal para leer mi correo y enviar correo. Intale los 3 mailx - sendmail y flechtmail y nada de nada. soy muy nuevo en esto el la linea similar de "# Who I masquerade as (null for no masquerading)
DM" esa no esta y cuando cree lo del "sudo nano /home/usuario/.fetcmailrc" me aparecio un "buffer" sin nada.
tengo que intalar los 3 y asi funciona ?

si tenes paciencia trata de explicarmelo y sino no importa ya me arreglare la ultima vez que pregunte no me respondio nadie asi que ya estoy acostumbrado :(

desde ya muchas gracias

+1
0
-1
Imagen de Gabriel_M
+1
0
-1

Se instala mediante:

sudo apt-get install mailx

La manera más sencilla de enviar un mensaje a un usuario de la red es ejecutar:

mail usuario

Este pregunta el tema (subject)

El cuerpo del mensaje que debe terminar con un punto (.)

Y a quién se le deseaba enviar copias del mismo (Cc)

Tras escribir esto, el mensaje escrito se graba como un archivo de texto (con el mismo nombre que el destinatario del mensaje, y al que se añadirán más mensajes conforme se le vayan enviando a dicho destinatario) en el directorio /var/spool/mail.

A la espera de que el usuario destino los lea y vayan siendo eliminados del mismo.

Si usuario está conectado o entra más tarde en cualquier terminal del sistema, recibirá un mensaje de aviso indicando que el sistema ha detectado la llegada de correo para el usuario:

You have mail.

Para realizar la lectura del correo electrónico, simplemente se invoca al programa mail, obteniendo una lista del correo pendiente y esperando el programa a que el usuario lo lea, responda, borre o almacene para más tarde:

mail

Muestra los mensajes pendientes, por responder, con su usuario de origen, la fecha y el tema, con el cursor virtual (>) situado sobre el primero (es decir, indicando sobre cual actuará una orden de lectura, respuesta o borrado), y con un promtp (el carácter &) a la espera de recepción de órdenes sobre que hacer con dicho correo.

+1
0
-1
Imagen de razaAztk
+1
0
-1

Para enviar mails desde el terminal, ver el hilo: [CÓMO] Enviar correos con gmail desde terminal - ubuntumexico.org

Cualquier duda, aquí andamos, jo!

Saludos!

+1
0
-1

void hey(int x,int y)
{
if (x && y)
 printf("http://libertadhack.blogspot.com/");
else
 printf("http://libertadpunk.blogspot.com/");
}
Imagen de Sird
+1
0
-1

Hola compi me pone esto "ssmtp: 530 5.7.0 Must issue a STARTTLS command first. t50sm10425888eeh.12 " que es ?

gracias por preocuparte

ah y me olvide que es el numero 587 y si fuera yahoo o hotmail seria el mismo numero?

gracias otra vez

+1
0
-1
Imagen de razaAztk
+1
0
-1

Viendo el tema https://forum.openwrt.org/viewtopic.php?id=4798 parece ser que el ssmtp que se encuentra en los repos no tiene soporte para ssl. Una solución es compilarlo.

Aunque yo he preferido utilizar otro cliente smtp, en este caso a msmtp.

$ sudo apt-get install msmtp

Después creamos el fichero ~/.msmtprc, con el sig contenido:

defaults
tls on
tls_starttls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt

account default
host smtp.gmail.com
port 587
auth on
user username@gmail.com
password mypass
from username@gmail.com

Y para usarlo con mutt, creamos el fichero de configuración de mutt ~/.muttrc, con lo sig:

set sendmail="/usr/bin/msmtp"
set from=username@gmail.com

Referencias:
http://www.absolutelytech.com/2010/07/17/howto-configure-msmtp-to-work-w...
http://msmtp.sourceforge.net/doc/mutt+msmtp.txt

Saludos!

+1
0
-1

void hey(int x,int y)
{
if (x && y)
 printf("http://libertadhack.blogspot.com/");
else
 printf("http://libertadpunk.blogspot.com/");
}
Imagen de Sird
+1
0
-1

grcaias todos

+1
0
-1
Imagen de john_system
+1
0
-1

Para enviar mail tienes q configurar smtp, puedes usar: postfix, sendmail, qmail, exim entre otros.

Para configurarlo en internet hay muchos manuales.

Despues de configurarlo usa:

# telnet 127.0.0.1 25
Trying 127.0.0.25...
Connected to 127.0.0.1.
Escape character is '^]'.
220 mail.dominio.com ESMTP Postfix
mail from: origen@gmail.com
ok..
rcpt to: destino@gmail.com
ok..
data.
Enviar mensaje.....
.
quit

Ese es el formato de como enviar un mensaje por consola usando postfix, puedes usar lo que tu deseas, es muy facil configurar usando webmail.

Te dejo un manual mas completo con mysql con dominios virtuales quisa te interese.

http://doc.ubuntu-es.org/Postfix/configuraci%C3%B3n_de_un_servidor_incluyendo_Postfixadmin,_Mysql,_Spamassassin_y_ClamAv

Ahora tambien puedes configurar tu cuenta gmail en evolution u otro suerte.....

+1
0
-1

John Chavez Matias
Linux - Ubuntu

Imagen de Sird
+1
0
-1

Bueno gracias por la preocupacion, ya configure el ssmpt era un error de super novatos.
Es que desde luego cuando uno no sabe NO SABE!!. Ya puedo mandar mail lo que intento pero lo que no puedo ahora es recibirlos estoy tratando de configurar el fetchmail pero me dice "fetchmail: conexión a pop.gmail.com:pop3 fallida: Expiró el tiempo de conexión.
Falló la conexión de POP3 a pop.gmail.com: Expiró el tiempo de conexión
fetchmail: Estado de la consulta=2 (SOCKET)"
No se que pasa aparentemente hice las cosas bien pero bue...y supuestamente tengo que tener este para trabajar con el mutt no es asi?

un saludo

+1
0
-1