none
Tem como receber um e-mail via linha de comando? RRS feed

  • Pergunta

  • Bom dia a todos!

    Existe a possibilidade de eu receber um email via linha de comando?

    A minha idéia era a mesma das regras do outlook, onde, quando eu recebo um email, com certa palavra no assunto, ele faz tal coisa, por exemplo.

    Teria como?

    quinta-feira, 23 de agosto de 2012 12:30

Respostas

  • Em linux, você pode capturar os e-mails com o seguinte comando

    curl -u username:password --silent "https://mail.google.com/mail/feed/atom" | tr -d '\n' | awk -F '<entry>' '{for (i=2; i<=NF; i++) {print $i}}' | sed -n "s/<title>\(.*\)<\/title.*name>\(.*\)<\/name>.*/\2 - \1/p"


    Via windows tem esse VBS para envio de e-mails.

    sendmail()
    Sub sendmail()
      Set iMsg = CreateObject("CDO.Message")
      Set iConf = CreateObject("CDO.Configuration")
    
      iConf.Load -1 ' CDO Source Defaults
      Set Flds = iConf.Fields
    
      With Flds
       .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
       'Enable SSL Authentication
     
       .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
       'Value of 1 enables basic authnetication, 
       '2 enables NTLM Authentication, 
       '0 disables Authentication
    
        'Enter your gmail address from which you would like to send mail.
       .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = ""
       'Enter Password
       .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") =  "senha"
       'Enter smtpserver, if it is gmail enter as smtp.gmail.com and if it is hotmail smtp.live.com
       .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
    
       .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
       'Value of 2 means send using port
       'value of 1 means send using a local SMTP server
       'value of 3 means send using Exchange Server
    
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
       'The SMTP Port which must be enabled in your network by ISP or local Firewall
    
        .Update
      End With
    
      With iMsg
       Set .Configuration = iConf
       .To = ""
       .CC = ""
       .BCC = ""
       .From = ""
       .Subject = ""
       .TextBody = ""
       .AddAttachment "C:\Teste.txt"
       'Local path of the file to attached
       'For attaching another file, 
       'repeat the line with new path
       .Send
       MsgBox "Sent"
      End With
    End Sub

    Porém para recebimento, não conheco nem uma solução via prompt

    Att.

    Glauco Malagoli

    • Marcado como Resposta 1endell sábado, 22 de setembro de 2012 14:10
    quarta-feira, 29 de agosto de 2012 16:47

Todas as Respostas

  • 1endell,

    Vc não recebe e-mail por script, para isso você precisa de uma aplicação.

    O que acredito que seja possivel fazer é ler os e-mail em alguma caixa, então vc poderia criar uma tarefa agendada para ler a caixa de x em x tempo.

    Você não deu muitos detalhes mas se for o outlook que você utiliza tente isto:

    Get mail from outlook 

    www.westphil.nl/systemadministration/vbscript/index.php?name=mailread

    O que vejo sendo feito por aí (solução um pouco "porca") é deixar um micro com o outlook ligado e fazer tarefas utilizando macros. Aqui no fórum mesmo tem um exemplo que trabalha com recebimento de nota fiscal eletrônica.


    Fábio de Paula Junior


    sexta-feira, 24 de agosto de 2012 01:03
    Moderador
  • Fábio,

    Em primeiro lugar, obrigado pela sugestão.

    Com as regras do Outlook, eu já estou acostumado.

    Minha ideia era fazer exatamente como faço nas regras do Outlook e, ainda, poder exportar o corpo de um email com determinado conteúdo pré-programado para um arquivo .txt, e tudo isso, sem ser necessário abrir o Outlook..

    Acha que seria viável algo assim?

    Desde já, muito obrigado!

    sexta-feira, 24 de agosto de 2012 13:26
  • 1endell,

    só reforçando o que o Fabio disse, acredito que não seja possível essa ação. Porque este script teria que rodar direto no Servidor de Exchange, ja que você não quer o uso do client do outlook, mesmo que você seja o adminstrador do Exchange, rodar um script como esse é arriscado...  Não recomendaria...

    Não conheço uma forma de acessar a caixa de e-mail sem o uso de um client ou OWA....


    att, Aparecido Deveza

    sexta-feira, 24 de agosto de 2012 22:02
  • Aparecido, Muito obrigado pela ajuda.

    Bem, a minha ideia seria uma forma de automatizar algumas coisas pra mim. Eu utilizaria meu PC para realizar algumas coisas pra mim, utilizando dessas regras, quando eu enviasse um email do meu celular, ele me retornaria a resposta.

    Bom, de qualquer forma, muito obrigado a todos pela ajuda!

    sábado, 25 de agosto de 2012 17:12
  • Em linux, você pode capturar os e-mails com o seguinte comando

    curl -u username:password --silent "https://mail.google.com/mail/feed/atom" | tr -d '\n' | awk -F '<entry>' '{for (i=2; i<=NF; i++) {print $i}}' | sed -n "s/<title>\(.*\)<\/title.*name>\(.*\)<\/name>.*/\2 - \1/p"


    Via windows tem esse VBS para envio de e-mails.

    sendmail()
    Sub sendmail()
      Set iMsg = CreateObject("CDO.Message")
      Set iConf = CreateObject("CDO.Configuration")
    
      iConf.Load -1 ' CDO Source Defaults
      Set Flds = iConf.Fields
    
      With Flds
       .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
       'Enable SSL Authentication
     
       .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
       'Value of 1 enables basic authnetication, 
       '2 enables NTLM Authentication, 
       '0 disables Authentication
    
        'Enter your gmail address from which you would like to send mail.
       .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = ""
       'Enter Password
       .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") =  "senha"
       'Enter smtpserver, if it is gmail enter as smtp.gmail.com and if it is hotmail smtp.live.com
       .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
    
       .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
       'Value of 2 means send using port
       'value of 1 means send using a local SMTP server
       'value of 3 means send using Exchange Server
    
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
       'The SMTP Port which must be enabled in your network by ISP or local Firewall
    
        .Update
      End With
    
      With iMsg
       Set .Configuration = iConf
       .To = ""
       .CC = ""
       .BCC = ""
       .From = ""
       .Subject = ""
       .TextBody = ""
       .AddAttachment "C:\Teste.txt"
       'Local path of the file to attached
       'For attaching another file, 
       'repeat the line with new path
       .Send
       MsgBox "Sent"
      End With
    End Sub

    Porém para recebimento, não conheco nem uma solução via prompt

    Att.

    Glauco Malagoli

    • Marcado como Resposta 1endell sábado, 22 de setembro de 2012 14:10
    quarta-feira, 29 de agosto de 2012 16:47
  • GMalagoli, Muito obrigado pela dica. Essa do Linux vai me quebrar um bom galho.
    sábado, 22 de setembro de 2012 14:10