15 votos

¿Cómo enviar un correo electrónico desde línea de comandos?

¿Cómo enviar un correo electrónico de línea de comandos o script? Quiero ser capaz de ejecutar la secuencia de comandos mediante programación pasando por el receptor y el mensaje.

17voto

moodforaday Puntos2633

Hay dos programas que soy consciente de que fácilmente le permiten configurar su Mac para enviar correo electrónico desde la línea de comandos.

He escrito hasta HOWTOs para ambos:

De los dos, me sugieren msmtp.

La configuración es bastante complicada que no estoy seguro de si debo replicar todos los pasos aquí, pero voy a mencionar que si uso Homebrew usted puede instalar msmtp el uso de

brew install msmtp --with-macosx-keyring

A continuación, el resto es sólo una cuestión de configuración de la relacionada con los archivos de configuración

La primera es /usr/local/etc/msmtprc

# Begin msmtprc
# Set default values for all following accounts.
defaults
tls on
logfile ~/.msmtp.log

# A first gmail address
account example@gmail.com
host smtp.gmail.com
port 587
protocol smtp
auth on
from example@gmail.com
user example@gmail.com
tls on
tls_starttls on

# this next line is crucial: you have to point to the correct security certificate for GMail.
# If this doesn't work, check the mstmp documentation
# at http://msmtp.sourceforge.net/documentation.html for help
#
# This next line should all be on one long line:
tls_trust_file /path/to/Thawte Roots/Thawte SSLWeb Server Roots/thawte Premium Server CA/Thawte Premium Server CA.pem

# Set a default account
# You need to set a default account for Mail
account default : example@gmail.com

# end msmtprc

Tenga en cuenta que tls_trust_file línea debe apuntar a donde sea que haya descargado e instalado los certificados de https://www.thawte.com/roots/index.html.

Puse la mía en ~/Dropbox/Thawte Roots así que puedo tener a todos los de mi Mac.

Entonces usted necesita un ~/.mailrc archivo decir donde la msmtp binario se encuentra. Si utilizas brew será /usr/local/bin/msmtp por lo que el archivo tendría este aspecto:

set sendmail="/usr/local/bin/msmtp"

El último y decisivo paso es asegurarse de que su Llavero tiene la información exactamente en el mismo formato que msmtp se espera:



Creo que cubre la mayor parte de los detalles. Ver http://www.tuaw.com/2010/05/04/msmtp-a-free-tool-to-send-email-from-terminal/ si usted desea un poco más específicos.

14voto

Ross Goddard Puntos2565

mail -s subject someone@example.comEscriba el mensaje, presione Ctrl+D para terminar

7voto

johneyt54 Puntos21

La forma más básica de enviar el correo se realiza a través de una sesión telnet con el servidor smtp de su proveedor de red. Después de que usted en contacto con el servidor y después de cada comando, el servidor te conteste si acepta el comando con algo como "250 OK", o si no con un mensaje de error.

Todos los detalles se pueden encontrar en RFC2821 - Protocolo de Transferencia de Correo, Google. Esta es la forma básica es ideal para pruebas de por qué algo va mal, el envío de correo electrónico, pero creo que es bastante complicado de secuencia de comandos se completa la prueba.

Primero consigue una interfaz de línea de comandos en el equipo, partiendo de la Terminal. A continuación, continúe con los siguientes comandos, uno tras uno.

Abrir una sesión telnet al puerto 25 del servidor smtp de su proveedor de red/

telnet name_or_ip_of_smtp_server 25

decir hola además de la internetname de su proveedor de red, como abc.com

EHLO name_of_your_network

una de=dirección de retorno es necesario, la < y > son parte del comando

MAIL FROM:<your_email_adress>

dar a uno o más destinos, la < y > son parte del comando

RCPT TO:<destination_email_address>
RCPT TO:<second_destination_email_address>
RCPT TO:<etc_destination_email_address>

decirle al servidor que desea empezar a enviar datos

DATA

ahora que el servidor debe responder usted puede comenzar a enviar su correo y se adentra en los datos en modo

your data
more data
etc

ahora terminar de datos con un punto como sólo char en una línea

.

el servidor vuelve al modo de comandos, de modo que usted puede dejar de fumar

QUIT

5voto

Adithya Holla Puntos13

Esto funcionó para mí, fue escrita con un León en mente, pero funciona para Mountain Lion. Por cierto, este es el uso de Gmail así que si no estás...

Usted no tiene que descargar nada! (sólo configuración de una cuenta de gmail)

http://www.anujgakhar.com/2011/12/09/using-macosx-lion-command-line-mail-with-gmail-as-smtp/

Configurar Postfix para SMTP de Gmail Editar el archivo /etc/postfix/main.cf

sudo vim /etc/postfix/main.cf

y añade la siguiente debajo de la comentada relayhosts :-

relayhost = [smtp.gmail.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_use_tls = yes

Generar sasl_password si no existe ya

sudo vim /etc/postfix/sasl_passwd

y entrar en la siguiente:-

[smtp.gmail.com]:587 username@gmail.com:password

Ejecute los siguientes comandos

sudo chmod 600 /etc/postfix/sasl_passwd
sudo postmap /etc/postfix/sasl_passwd
sudo launchctl stop org.postfix.master
sudo launchctl start org.postfix.master

Y listo....
Ahora, usted debería ser capaz de enviar correos electrónicos desde dentro de la línea de comandos por ejemplo, para enviar el contenido de un directorio como un árbol a una dirección de correo electrónico

tree /var/www/somefolder | mail -s "contents" your@yourdomain.com

0voto

PBR Puntos36

mtcmail es otra opción: http://www.macupdate.com/app/mac/33505/mtcmail-cli.

[Omitir este texto adicional. Porque ha añadido: cuerpo debe tener al menos 30 caracteres; escribiste 27.]

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by: