Automatizar envio de E-mail usando PowerShell

29 de agosto de 2017 Deixe um comentário

Podemos automatizar diversas tarefas usando PoweShell, inclusive enviar e-mail.

Este tutorial trata o script PowerShell e também como configurar o Gmail para permitir o envio do e-mail.

psEmail003

 

Criar script PowerShell com .NET Framework para enviar E-mail

 

Abra o bloco de notas, copie/cole o código e salve em: "C:\TEMP\Email_PowerShell.ps1"


$SMTPServer = "smtp.dominio.com.br"
$SMTPPort = "587"
$Username = "seuemail@dominio.com.br"
$Password = "senha"

$to = "destinatario@dominio.com.br"
$cc = "destinatariocopia@dominio.com.br"
$bcc = "destinatariocopiaoculta@dominio.com.br"
$subject = "Assunto do E-mail"
$body = "Este e-mail foi enviado automaticamente, usando PowerShell.

Att,
Sua Assinatura"

$attachment = "C:\TEMP\Email_PowerShell.ps1"

$message = New-Object System.Net.Mail.MailMessage
$message.subject = $subject
$message.from = $username
$message.to.add($to)
#$message.cc.add($cc)
#$message.cc.add($bcc)
#$message.attachments.add($attachment)

$message.body = $body

$smtp = New-Object System.Net.Mail.SmtpClient($SMTPServer, $SMTPPort);
$smtp.EnableSSL = $true
$smtp.Credentials = New-Object System.Net.NetworkCredential($Username, $Password);
$smtp.send($message)
write-host "E-mail Enviado!"


Usando o SMTP do GMail

 

$SMTPServer = "smtp.gmail.com"
$SMTPPort = "587"
$Username = "seuemail@gmail.com.br"
$Password = "senha"

 

Quando usamos o GMail para autenticação no Outlook, Site e Apps. Sempre na primeira vez é perguntado se vamos permitir que o “Programa” em questão acesse nossa conta.

Ao concordarmos o acesso é liberado e o “Programa” faz login usando as nossas credencias.

Isso é uma segurança do Goggle.

No caso do “Programa” – Script PowerShell não existe a interface que solicita nossa permissão. Logo, quando o script tenta fazer o login para enviar o e-mail.

Aparece uma mensagem de erro / falha de autenticação:

Exception calling "Send" with "4" argument(s): "The SMTP server requires a secure connection or the client was not authenticated.The server response was: 5.5.1 Authentication Required. Learn more at"At line:15 char:1+ $SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body)+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+ CategoryInfo          : NotSpecified: (:) [], MethodInvocationException+ FullyQualifiedErrorId : SmtpException

 

A solução imediata, porém menos segura, é reduzir a segurança do Google.

Configurar o GMail para permitir o Login:

a. Entre em https://myaccount.google.com/security 

b. Alterar a opção Permitir aplicativos menos seguros: DESATIVADA –> ATIVADA

c. Você receberá um e-mail de segurança do Google, não precisa fazer nada é só um aviso.

psEmail006

Outra solução é usar a autenticação em duas etapas e ativar a senha de app de 16 dígitos.

Também podemos usar a autenticação OAuth, ambas soluções tratarei outro dia.


Executar o script PowerShell

 

psEmail003

a. Abrir o PowerShell

b. Entrar na pasta “CD C:\TEMP”

c. Executar o comando “.\Email_PowerShell.ps1

.ps1 cannot be loaded because running scripts is disabled on this system. For more information, see about_Execution_Policies at http://go.microsoft.com/fwlink/?LinkID=135170.

d. Executar o comando mudando a permissão, apenas no contexto desta sessão

PowerShell.exe -NoProfile -ExecutionPolicy Bypass -File "ExecPS1.ps1" -Verb RunAs

 

 

Fonte:

.NET Framework

https://technet.microsoft.com/pt-br/library/system.net.mail(v=vs.110).aspx

SMTP PowerShell using simple Authentication

http://petermorrissey.blogspot.com.br/2013/01/sending-smtp-emails-with-powershell.html

Sending e-mail with Gmail using PowerShell

https://stackoverflow.com/questions/29029364/sending-email-with-gmail-using-powershell

Windows PowerShell about_Execution_Policies

https://technet.microsoft.com/pt-BR/library/hh847748.aspx

Converter e/ou Formatar no Microsoft SQL Server

30 de maio de 2017 Deixe um comentário

Tenho um campo do tipo SmallDateTime contendo 2017-05-30 16:16:10.730.

Desejo os seguintes resultados:

GetDate yyyymmdd yyyy-mm-dd dd/mm/yyyy
2017-05-30 16:16:10.730 20170530 2017-05-30 30/05/2017

 

Solução:

Para resolver este problema usei a função CONVERT passando o parâmetro style, ele será o responsável por apresentar o resultado da conversão com um formato de exibição.

Cada código do style indica um formato, mais informações na documentação T-SQL.

 

Syntax for CONVERT: CONVERT ( data_type [ ( length ) ] , expression [ , style ] )

 

Comando:

select getdate() AS ‘GetDate’

     , convert(varchar(10), getdate(), 112)  AS DateFormat_ISO_Long
     , convert(varchar(10), getdate(), 126)  AS DateFormat_ISO8601_Long
     , convert(varchar(10), getdate(), 103) AS DateFormat_British_French_Long

 


Desejo a Data e Hora SEM espacos

GetDate yyyy-mm-ddThh:mm:ss.mmmZ
2017-05-30 16:16:10.730 2017-05-30T16:16:10.730

 

Solução:

select getdate() AS ‘GetDate’
    
     , convert(varchar(19), getdate(), 126)  AS DateFormat_ISO8601_Long — (no spaces)


Desejo a Hora com formados diferentes

GetDate hh:mm hh:mm:ss hh:mm:ss.mmm
2017-05-30 16:16:10.730 16:16 16:16:10 16:16:10.730

 

Solução:

select getdate() AS ‘GetDate’

     
     , convert(varchar(5), getdate(), 114) AS HoraMinuto
     , convert(varchar(8), getdate(), 114) AS HoraMinutoSegundo
     , convert(varchar(12), getdate(), 114) AS HoraMinutoSegundoMilisegundo

Certificado – Maratona Xamarin 2017

29 de março de 2017 Deixe um comentário

Agora sim, ficou pronto meu certificado da Maratona Xamarin 2017

SamirMMBRxamarinmaratona2017pt

Xamarin Fest LATAM – São Paulo

25 de março de 2017 Deixe um comentário

Está acontecendo agora o evento presencial gratuíto de Xamarin.

xamarinfestlatam2017

Xamarin Fest – Zapopán, México
Tema: Cognitive Services & Xamarin
Oficinas Los Xamarinos, Calle Prado de los Cedros 867
Xamarin Fest – São Paulo, Brasil
Tema: Xamarin Fest São Paulo
Escola SENAI de Informática- Santa Cecília
Xamarin Fest – Porto Alegre, Brasil
Tema: Xamarin Fest Porto Alegre
Puc Rio Grande do Sul
Xamarin Fest – Blumenau, Brasil
Tema: Xamarin Fest Blumenau
UniSociesc de Blumenau
   

Em São Paulo:

Dia 25 de março a equipe de Microsoft MVPs estará na cidade para levar o seu conhecimento de Xamarin e nuvem para o próximo nível.

 

Organizadores:

Valerio Ferreira, e Thamirys Gameiro

https://www.meetup.com/pt-BR/Developers-SP/events/238451950/

 

O evento será um treinamento com a seguinte agenda:

• Xamarin para desenvolvimento de aplicativos;

• Definição do escopo do aplicativo;

• Como utilizar o Visual Studio Team Services para: Desenvolvimento Agile  com planejamento de tarefas (Scrum e Kanban) e colaboração de código com Git;

• Desenvolvimento do aplicativo e conexão com Azure;

• Como utilizar o Mobile Center para Testes de UI, Crashes, Analitycs e também como enviar versões betas de testes para usuários selecionados antes de publicar na loja;

• Como preparar e enviar um aplicativo para publicação na Apple Store e Google Play.

 

Fonte:

  https://goo.gl/J2kAnA

Aprovado na Maratona Xamarin 2017

10 de março de 2017 1 comentário

Hoje estou especialmente feliz Winking smile . Aprovado de primeira na #MaratonaXamarin

prova-samirmmbr-CPF-XForms-Aprovado

 

Excelente iniciativa dos MVPs:

enriqueaguilar hjaimesdev stvansolano
Enrique Aguilar Vargas
@enriqueaguilar
Humberto Jaimes Rodríguez
@hjaimesdev

Esteban Solano Granados
@stvansolano

MVPBadgeXamarin

 

Curso: https://ticapacitacion.com/curso/xamarinpt/

Data de início: 30 de janeiro de 2017

Data de término: 17 de março de 2017

Idioma:Português

Tecnologias: Xamarin, Microsoft Visual Studio, C#, XAML, .NET, Azure

Formato do curso:
O curso está disponível através de vídeos on-line que podem ser visualizadas em qualquer navegador web com suporte a vídeo HTML5. O curso apresenta material de apoio em formato PDF e laboratórios práticos.

Recursos de apoio:
Sessões de suporte on-line ao vivo com instrutores para tirar dúvidas.

Horário:
O acesso ao curso está disponível na sala virtual 24 horas por dia, 7 dias por semana.

Tempo médio de estudo diário:
A agenda do curso é projetada para que o participante invista de 30 a 90 minutos por dia de segunda a quinta-feira para assistir às aulas e realizar as atividades.

Sobre o curso:

Este treinamento proporciona os conhecimentos necessários para desenvolver aplicativos multi-plataforma utilizando o Xamarin.

O treinamento introduz ao desenvolvimento de aplicativos usando as APIs Xamarin.Android, Xamarin.iOS e Xamarin.Forms. Ele também inclui o desenvolvimento de serviços do Microsoft Azure para serem consumidos pelos aplicativos Xamarin.

Objetivo:

Ao finalizar este treinamento, o participante:

  • Conhecerá a estrutura básica dos diferentes tipos de projetos que podem ser criados em Xamarin.
  • Terá uma visão clara da estrutura de um projeto Xamarin.Android.
  • Conhecerá os controles gráficos que podem ser utilizados durante o desenvolvimento de aplicativos em Android.
  • Conhecerá o clico de vida de um aplicativo Android.
  • Terá uma visão clara da estrutura de um projeto Xamarin.iOS.
  • Conhecerá os controles gráficos que podem ser utilizados durante o desenvolvimento de aplicativos iOS.
  • Conhecerá o ciclo de vida de um aplicativo iOS.
  • Conhecerá as vantagens de utilizar Xamarin.Forms como alternativa ao Xamarin clássico.
  • Aprenderá os conceitos básicos do padrão MVVM e a forma de aplicá-lo durante o desenvolvimento de aplicativos com Xamarin.
  • Terá base para criar seus próprios aplicativos conectados aos serviços de nuvem do Microsoft Azure.
  • Conhecerá alguns serviços oferecidos pelo Microsoft Azure que permitem incorporar de maneira simples, funcionalidades que agreguem valor aos seus aplicativos.

Conteúdo do Curso:

O conteúdo deste treinamento terá 5 módulos.

Módulo 1: Introdução ao desenvolvimento móvel

Ao finalizar este módulo, os participantes conhecerão a estrutura básica dos diferentes tipos de projetos que podem ser gerados em Xamarin. Durante este módulo, os participantes realizarão os primeiros testes de ambiente de desenvolvimento que instalaram.

O conteúdo deste módulo é:

  • Lição 1: Introdução ao Xamarin.iOS
  • Lição 2: Introdução ao Xamarin.Android
  • Lição 3: Introdução ao Xamarin.Forms
  • Lição 4: Portabilidade de código .Net (Shared Code / PCL)

Módulo 2: Xamarin Android

Ao finalizar este módulo, os participantes terão uma visão clara da estrutura de um projeto Xamarin.Android. Identificarão os controles gráficos que podem ser utilizados durante o desenvolvimento de seus aplicativos e conhecerão o ciclo de vida de una aplicação Android.

O conteúdo deste módulo é:

  • Lição 1: Introdução à Interface Gráfica em Xamarin
  • Lição 2: Introdução aos Actitivities em Xamarin
  • Lição 3: Controles de UI
  • Lição 4: Introdução ao Aceso de Dados SQLite com Xamarin Android

Módulo 3: Xamarin iOS

Ao finalizar este módulo, os participantes terão uma visão clara da estrutura de um projeto Xamarin.iOS. Identificarão os controles gráficos que podem ser utilizados durante o desenvolvimento de seus aplicativos e conhecerão o ciclo de vida de una aplicação iOS.

O conteúdo deste módulo é:

  • Lição 1: Estrutura de una aplicação iOS com Xamarin
  • Lição 2: Trabalhando com o designer (XIB / StoryBoards)
  • Lição 3: Introdução aos eventos e delegates
  • Lição 4: Introdução aos Controles de UI

Módulo 4: Xamarin Forms

Ao finalizar este módulo, os participantes conhecerão as vantagens de utilizar Xamarin.Forms como alternativa ao Xamarin clássico. Aprenderão os conceitos básicos do padrão MVVM e como aplica-los durante o desenvolvimento de seus aplicativos Xamarin.

O conteúdo deste módulo é:

  • Lição 1: Introdução à Estrutura de Xamarin Forms
  • Lição 2: Modelo-Vista-Vista de Modelo (MVVM)
  • Lição 3: A Estrutura de Linguagem XAML
  • Lição 4: Armazenamento SQLite em Xamarin.Forms
  • Lição 5: Consumo de Servicios REST em Xamarin.Forms

Módulo 5: Serviços de nuvem para seu App em Xamarin

Ao finalizar este módulo, os participantes, participantes terão base para criar seus próprios aplicativos conectados aos serviços do Microsoft Azure. Conhecerão alguns serviços oferecidos pelo Microsoft Azure que o permitiram incorporar de maneira simples, funcionalidades que agreguem valor aos seus aplicativos.

O conteúdo deste módulo é:

  • Lição 1: Introdução ao Azure Mobile Apps
  • Lição 2: Sincronização de dados offline
  • Lição 3: Serviços de Autenticação para seu App
  • Lição 4: Serviços de notificações para seu App

Apache Http Server – Download

6 de fevereiro de 2017 Deixe um comentário

Instalação do Apache HTTP Server para Windows:

Os pacotes -win32-x86-no_ssl.msi não contém nenhum software de criptografia.

Exemplo: OpenSSL, mod_ssl, https.

Versão Link Data Tamanho
2.2.25 httpd-2.2.25-win32-x86-no_ssl.msi 2013-07-10 08:06 5.5 MB
2.2.22 httpd-2.2.22-win32-x86-no_ssl.msi 2012-01-30 22:06 5.4 MB
2.2.21 httpd-2.2.21-win32-x86-no_ssl.msi 2011-09-12 17:02 4.9 MB
2.2.20 httpd-2.2.20-win32-x86-no_ssl.msi 2011-08-31 05:57 4.9 MB
2.2.19 httpd-2.2.19-win32-x86-no_ssl.msi 2011-05-21 18:57 4.9 MB
2.2.19 httpd-2.2.18-win32-x86-no_ssl.msi 2011-05-11 05:34 5.4 MB
2.2.17 httpd-2.2.17-win32-x86-no_ssl.msi 2010-10-18 08:38 5.2 MB
2.2.16 httpd-2.2.16-win32-x86-no_ssl.msi 2010-07-31 18:45 5.1 MB
2.2.15 httpd-2.2.15-win32-x86-no_ssl.msi 2010-03-05 21:07 5.1 MB

Fonte: https://archive.apache.org/dist/httpd/binaries/win32/

Como descobrir Versão, Build do Windows 10?

8 de janeiro de 2017 Deixe um comentário

Algumas maneiras de encontrar o número da versão e número da build e respectiva revisão para o Windows 10.

Opção A

1. Pressione a tecla WIN

2. Digite version será selecione System Information e pressione ENTER

WIN_version

 

Opção B

1. Pressione as teclas de atalho Win + R

2. Digite winver pressione ENTER ou clique OK

Run_winver

Run_winver2

 

Opção C

1. Abrir o Prompt de Comando ( CMD )

Sempre que o CMD é aberto. Já é exibida a Versão e Build, na primeria linha, mas se aplicar o comando CLS que limpa a tela está informação é apaga.

Para exibir novamente, digite o comando VER ( de Version ) e pressione ENTER.

CMD_ver

O cmd, não faz diferença de minúsculo e MAIÚSCULO.

 

Opção D

1. Abrir o Windows PowerShell command prompt

2. Digite [environment]::OSVersion.Version e pressione ENTER.

PS_OSVersion

Lembre que o command do PowerShell faz diferença de minúsculo e MAIÚSCULO.

 

Fonte:

https://blogs.technet.microsoft.com/heyscriptingguy/2014/04/25/use-powershell-to-find-operating-system-version/

http://techblissonline.com/check-windows-version-build-number-and-service-pack/

https://www.codeproject.com/Articles/9841/XWinVer-Simple-class-to-get-Windows-OS-version

http://techblissonline.com/find-windows-version-build-number-revision-number/