none
Como enviar E-mail pelo Powershell RRS feed

  • Pergunta

  • $EmailFrom = "teste01@hotmail.com"
    $EmailTo = "teste@gmail.com"
    $Subject = "teste"
    $Body = "teste"
    $SMTPServer = "smtp.live.com"
    $SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587)
    $SMTPClient.EnableSsl = $true
    $SMTPClient.Credentials = New-Object System.Net.NetworkCredential("teste01@hotmail.com", "*****")
    $SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body)

    Gostaria de saber como enviar um ANEXO pela essa programação, porque esse código funciona corretamente para enviar texto. Já pesquisei em vários sites para enviar um anexo só que não funciona nenhum no meu caso. Por favor deixe bem explicado. 

    sábado, 16 de janeiro de 2021 15:29

Respostas

  • Olá amigo,

    Aqui tem um exemplo. Copie o código abaixo, coloe no bloco de notas, preencha com os seus dados verdadeiros, salve com extenção *.ps1

    Para executar basta clicar com botão direito e "Executar com Powershell" ou então chamar de outro script ou direto no powershell.

    $Username = "seuemail@email.com";
    $Password = "SuaSenha";
    $path = "C:\Users\ricar\Desktop\impressora.txt";
    
    function Send-ToEmail([string]$email, [string]$attachmentpath){
    
        $message = new-object Net.Mail.MailMessage;
        $message.From = "seuemail@email.com";
        $message.To.Add($email);
        $message.Subject = "Eu sou o galo cego, Quem é você?";
        $message.Body = "Testando Testando Testando";
        $attachment = New-Object Net.Mail.Attachment($attachmentpath);
        $message.Attachments.Add($attachment);
    
        $smtp = new-object Net.Mail.SmtpClient("smtp.sapo.pt", "587");
        $smtp.EnableSSL = $true;
        $smtp.Credentials = New-Object System.Net.NetworkCredential($Username, $Password);
        $smtp.send($message);
        write-host "Mail Sent" ; 
        $attachment.Dispose();
     }
    Send-ToEmail  -email "destinatário@email.com" -attachmentpath $path;


    R. Bohner

    • Sugerido como Resposta Paulo Costa TI segunda-feira, 18 de janeiro de 2021 09:57
    • Marcado como Resposta Jeanpierrebu segunda-feira, 18 de janeiro de 2021 11:55
    domingo, 17 de janeiro de 2021 01:40

Todas as Respostas

  • Olá

    Cria uma variável para o anexo 

    Segue um link com um script

    https://felipegbass.wordpress.com/2016/05/20/power-shell-script-para-enviar-e-mail/


    Olá, Obrigada por participar da Comunidade TechNet. Paulo Costa ____________________________________________________________________________ Por favor lembre-se de "Marcar como resposta" as respostas que solucionaram seu problema, é uma forma comum de reconhecer aquelas pessoas que te ajudaram, e faz com que seja mais fácil para os outros visitantes encontrar a solução depois. Microsoft oferece esse serviço de forma gratuita, com a finalidade de ajudar os usuários e ampliar a base de dados de conhecimentos relacionados com os produtos e tecnologias de Microsoft. Este conteúdo é proporcionado "tal qual" e não implica nenhuma responsabilidade por parte de Microsoft

    sábado, 16 de janeiro de 2021 20:32
  • Olá amigo,

    Aqui tem um exemplo. Copie o código abaixo, coloe no bloco de notas, preencha com os seus dados verdadeiros, salve com extenção *.ps1

    Para executar basta clicar com botão direito e "Executar com Powershell" ou então chamar de outro script ou direto no powershell.

    $Username = "seuemail@email.com";
    $Password = "SuaSenha";
    $path = "C:\Users\ricar\Desktop\impressora.txt";
    
    function Send-ToEmail([string]$email, [string]$attachmentpath){
    
        $message = new-object Net.Mail.MailMessage;
        $message.From = "seuemail@email.com";
        $message.To.Add($email);
        $message.Subject = "Eu sou o galo cego, Quem é você?";
        $message.Body = "Testando Testando Testando";
        $attachment = New-Object Net.Mail.Attachment($attachmentpath);
        $message.Attachments.Add($attachment);
    
        $smtp = new-object Net.Mail.SmtpClient("smtp.sapo.pt", "587");
        $smtp.EnableSSL = $true;
        $smtp.Credentials = New-Object System.Net.NetworkCredential($Username, $Password);
        $smtp.send($message);
        write-host "Mail Sent" ; 
        $attachment.Dispose();
     }
    Send-ToEmail  -email "destinatário@email.com" -attachmentpath $path;


    R. Bohner

    • Sugerido como Resposta Paulo Costa TI segunda-feira, 18 de janeiro de 2021 09:57
    • Marcado como Resposta Jeanpierrebu segunda-feira, 18 de janeiro de 2021 11:55
    domingo, 17 de janeiro de 2021 01:40
  • Muito obrigado!!!!

    segunda-feira, 18 de janeiro de 2021 11:59