Como enviar um email a partir da linha de comando ou script? Quero poder executar o script programaticamente passando o receptor e a mensagem.
email
development
command-line
script
michelemarcon
fonte
fonte
Respostas:
mail -s subject [email protected]
digite sua mensagem, pressioneCtrl+D
para finalizarfonte
echo This will be the body of the email | mail -s "This is the Subject" [email protected]
Estou ciente de dois programas que permitirão que você configure facilmente o seu Mac para enviar e-mails a partir da linha de comando.
Eu escrevi HOWTOs para os dois:
Dos dois, eu sugiro
msmtp
.A configuração é bastante complicada e não tenho certeza se devo replicar todas as etapas aqui, mas mencionarei que, se você usar o Homebrew, poderá instalar o msmtp usando
brew install msmtp --with-macosx-keyring
O restante é apenas uma questão de configurar os arquivos de configuração relacionados
O primeiro é
/usr/local/etc/msmtprc
Observe que a
tls_trust_file
linha deve apontar para onde você baixou e instalou os certificados em https://www.thawte.com/roots/index.html .Coloquei o meu
~/Dropbox/Thawte Roots
para poder usá- lo em todos os meus Macs.Então você precisa de um
~/.mailrc
arquivo para dizer onde o binário msmtp está localizado. Se você usábrew
-/usr/local/bin/msmtp
lo, o arquivo ficará assim:O último passo, porém crucial, é garantir que o seu Keychain tenha as informações exatamente no formato que o msmtp espera:
Eu acho que isso cobre a maioria dos detalhes. Consulte http://www.tuaw.com/2010/05/04/msmtp-a-free-tool-to-send-email-from-terminal/ se desejar mais alguns detalhes.
fonte
[email protected]
para o seu endereço de e-mail do Gmail ou do Google Apps.~/.msmtprc
A maneira mais básica de enviar email é através de uma sessão de telnet com o servidor smtp do seu provedor / rede. Depois de entrar em contato com o servidor e após cada comando, o servidor responderá se aceitar o comando com algo como "250 OK" ou se não estiver com uma mensagem de erro.
Todos os detalhes podem ser encontrados no RFC2821 - Simple Mail Transfer Protocol, do Google. Essa maneira básica é ótima para testar por que algo dá errado no envio de mensagens, mas acho que é bastante complicado criar um script completo.
Primeiro, obtenha uma interface de linha de comando no seu computador, iniciando o Terminal. Continue com os seguintes comandos, um após um.
Abra uma sessão de telnet para a porta 25 do servidor smtp do seu provedor / rede
diga olá mais o nome da Internet do seu provedor / rede, como abc.com
é necessário um endereço from = return, <e> fazem parte do comando
fornecer um ou mais destinos, os <e> fazem parte do comando
diga ao servidor que você deseja começar a enviar dados
agora o servidor deve responder, você pode começar a enviar seu e-mail e entrar no modo de dados
agora termine os dados com um ponto, como apenas caracteres em uma linha
o servidor volta ao modo de comando para que você possa sair
fonte
Isso funcionou para mim, foi escrito com o Lion em mente, mas funciona para o Mountain Lion. Btw isso está usando o Gmail, então se você não estiver ...
Você não precisa baixar nada! (basta configurar uma conta do Gmail)
http://www.anujgakhar.com/2011/12/09/using-macosx-lion-command-line-mail-with-gmail-as-smtp/
Configurar o Postfix para o arquivo de edição SMTP do Gmail /etc/postfix/main.cf
e adicione o seguinte abaixo os relayhosts comentados: -
Gere sasl_password se ainda não existir
e digite o seguinte: -
Execute os seguintes comandos
E você terminou.
Agora, você poderá enviar e-mails de dentro da linha de comando, por exemplo, para enviar o conteúdo de um diretório como uma árvore para um endereço de e-mail
fonte
O mtcmail é outra opção: http://www.macupdate.com/app/mac/33505/mtcmail-cli .
[Ignore este texto adicional. Adicionado porque: o corpo deve ter pelo menos 30 caracteres; você inseriu 27.]
fonte
Você pode verificar o postfixconf que habilita e configura o OS X para enviar e-mails a partir da linha de comando (usando sua entrada).
É baseado na configuração do postfix que está bem documentada na web aqui , aqui e aqui .
fonte
Como é baseado em Unix, você pode usar o comando sendmail .
fonte