Índice:

Enviar e-mail automaticamente com foto de arquivo de lote usando a antiga área de trabalho e XP: 4 etapas
Enviar e-mail automaticamente com foto de arquivo de lote usando a antiga área de trabalho e XP: 4 etapas

Vídeo: Enviar e-mail automaticamente com foto de arquivo de lote usando a antiga área de trabalho e XP: 4 etapas

Vídeo: Enviar e-mail automaticamente com foto de arquivo de lote usando a antiga área de trabalho e XP: 4 etapas
Vídeo: Sumiu seus arquivos do Windows ? Veja como encontrar 2024, Julho
Anonim
Enviar e-mail automaticamente com foto de arquivo de lote usando a antiga área de trabalho e XP
Enviar e-mail automaticamente com foto de arquivo de lote usando a antiga área de trabalho e XP

Tenho muita sorte de ter uma bela vista da janela do meu escritório em casa. Quando estou fora, quero ver o que estou perdendo e frequentemente estou fora. Eu costumava ter meu próprio site e uma estação meteorológica doméstica que carregava via ftp todos os dados meteorológicos e uma foto tirada pela janela, no entanto, o provedor de hospedagem do site tornou a manutenção do site onerosa, então, depois de muitos anos, parei isto. Eu pretendia encontrar um método substituto para olhar pela janela, por exemplo, sites gratuitos, blogs, e-mail … mas na maioria dos casos, as transferências automatizadas de ftp para essas soluções potenciais foram bloqueadas. Uma complicação adicional é que frequentemente fico fora por meses seguidos, portanto, qualquer solução que seja encontrada deve ser confiável.

Fui inspirado pelo autor do Instructables, Olivi3r, e seu Instructable para a criação de uma câmera de segurança. Depois de um dia ou mais de torcer as mãos, consegui fazer funcionar. Este Instructable adiciona alguns detalhes importantes.

Basicamente, o objetivo é tirar uma foto com a webcam todas as manhãs e depois enviar a foto para mim mesmo via gmail como um anexo. Isso acontecerá da seguinte maneira:

  • A energia AC será ligada por 15 minutos usando um temporizador 110VAC
  • O computador ligará
  • O software da webcam irá capturar uma foto
  • Um arquivo em lote do Windows será executado:
  • Execute um arquivo de script do PowerShell que enviará o e-mail e o anexo
  • O comando de arquivo em lote desligará o computador
  • A energia AC desligará

Advertências: não sou um programador do Windows - não me pergunte se não funciona. Eu consegui essa abordagem para trabalhar mergulhando de snorkel na Internet até encontrar o insight necessário para depurar meus arquivos. Em segundo lugar, eu queria que isso rodasse em uma máquina com Windows XP, tenho certeza de que existem soluções melhores em um computador com Windows 10. Na verdade, provavelmente existem soluções melhores em uma máquina XP. Se você encontrar algum, cole-o nos comentários. Executar essa abordagem em um laptop pode ser arriscado porque o computador deve ligar quando a alimentação CA é ligada. O editor de código Instructables tem o péssimo hábito de inserir e outras tags HTML no código (incluindo o código de Olivi3r). Acho que editei tudo isso, mas cuidado … Por último, o botão "Visualização completa" do Instructables só me mostraria uma página em branco - então WYSIWYG!

Faremos isso em 4 etapas:

  1. Prepare o computador
  2. Escreva e depure um script PowerShell
  3. Escreva e depure um arquivo em lote
  4. Encerre tudo e Bob é seu tio!

Etapa 1: preparar o computador

Primeiro, tire uma velha mesa do armário. Se estiver rodando no Windows XP (SP3) - funcionará. Este Instructable é projetado para XP, mas a abordagem deve ser a mesma no Windows 10. Abra-o e invoque o BIOS (geralmente F1, del ou F2 durante o processo de inicialização). Encontre algo como "Gerenciamento de energia" e altere para "Recuperação de energia AC - LIGADO". Isso fará com que o computador inicialize quando a alimentação CA for ligada. Teste-o.

Você precisará desativar todas as senhas e entrar como administrador. Isso ocorre porque o computador deve concluir o processo de inicialização sem supervisão. Vá para o Painel de Controle, Contas de Usuário e faça as alterações apropriadas, se necessário.

Em seguida, você precisa de uma webcam e um aplicativo de webcam que irá tirar uma foto e armazená-la. Eu uso Dorgem - simples e grátis. Configure o Dorgem para tirar uma foto e armazená-la na área de trabalho. Não altere o nome da foto ao tirar uma nova foto; em vez disso, substitua a última foto. Neste exemplo, a imagem é Pic.jpg. Além disso, observe que estou armazenando a imagem na área de trabalho. Isso é importante porque o caminho do diretório é fácil. Arraste e solte o ícone Dorgem na pasta STARTUP do Windows.

Agora - algumas partes complicadas:

Você deve alterar sua conta do Chrome para permitir aplicativos menos seguros. Goggle "aplicativos menos seguros do Chrome" e selecione a primeira opção - provavelmente esta. Ative esse recurso. Você receberá um alerta por e-mail informando sobre os perigos dessa configuração. Talvez você não precise fazer isso se usar um servidor de e-mail diferente, por exemplo, Yahoo, AOL …

Em seguida, você deve habilitar a execução de scripts do PowerShell. Se você estiver executando o Windows 10, isso é mais fácil - clique no ícone do Windows (canto inferior esquerdo da tela), role a lista de programas para o Windows PowerShell, expanda, clique com o botão direito em PowerShell e selecione "Executar como Administrador". Isso abrirá a janela do PowerShell. No XP, o processo é um pouco mais complicado - use o File Explorer, encontre o diretório do PowerShell (algo como C: / Windows / system32 / WindowsPowerShell / v1.0), clique com o botão direito no ícone do PowerShell e selecione "Fixar no menu iniciar". Agora você tem acesso ao PowerShell clicando no ícone Iniciar (canto inferior esquerdo) e clicando no ícone PowerShell. Clique no ícone do PowerShell, na janela que aparece digite o seguinte comando:

set-executionpolicy remotesigned

Você será solicitado a confirmar digitando "y".

confirme que você alterou com sucesso a política de execução digitando:

política de execução

OK! Seu computador está pronto.

Etapa 2: escrever e depurar um arquivo PowerShell

Copie e cole este texto no bloco de notas:

$ EmailTo = "você@gmail.com"

$ EmailFrom = "[email protected]" $ Subject = "Visualizar" $ Body = "x" $ SMTPServer = "smtp.gmail.com" $ SMTPMessage = Novo objeto System. Net. Mail. MailMessage ($ EmailFrom, $ EmailTo, $ Subject, $ Body) $ attachment = New-Object System. Net. Mail. Attachment ("C: / Documents and Settings / Administrator / Desktop / pic.jpg") $ SMTPMessage. Attachments. Add ($ attachment) $ SMTPClient = New-Object Net. Mail. SmtpClient ($ SmtpServer, 587) $ SMTPClient. EnableSsl = $ True $ SMTPClient. Credentials = New-Object System. Net. NetworkCredential ("userID", "password"); $ SMTPClient. Send ($ SMTPMessage)

Salve este arquivo na área de trabalho como "SendPic.ps1".

Faça as alterações apropriadas em; você, ID de usuário e senha. Normalmente, sua ID de usuário é igual ao endereço completo do Gmail.

Se você não estiver usando o Gmail, deverá navegar na Internet para encontrar a porta associada ao seu servidor Smtp e alterar "587" para a porta apropriada, por exemplo, smtp.mail.yahoo.com e a porta é 465.

Em vez de usar o Bloco de notas, o editor do PowerShell está disponível.

Agora, para o grande, clique com o botão direito no arquivo SendPic PowerShell e selecione "Executar com PowerShell". Se funcionar, você receberá um e-mail em alguns segundos. Caso contrário, você precisa iniciar a depuração.

Depurando

Crie um novo arquivo PowerShell em sua área de trabalho chamado test1 que envia um e-mail sem anexo:

$ EmailTo = "você@gmail.com"

$ EmailFrom = "[email protected]" $ Subject = "teste" $ Body = "x" $ SMTPServer = "smtp.gmail.com" $ SMTPMessage = Novo objeto System. Net. Mail. MailMessage ($ EmailFrom, $ EmailTo, $ Subject, $ Body) $ SMTPClient = New-Object Net. Mail. SmtpClient ($ SmtpServer, 587) $ SMTPClient. EnableSsl = $ True $ SMTPClient. Credentials = New-Object System. Net. NetworkCredential ("userID", "senha"); $ SMTPClient. Send ($ SMTPMessage)

Abra o arquivo com o editor do PowerShell clicando com o botão direito no arquivo e selecionando "Editar". Executando a partir do editor, podemos ler as mensagens de erro que aparecem quando você clica duas vezes no arquivo.

cd. / desktop

. / test1.ps1

Se isso falhar, provavelmente é devido a um problema de diretório. Certifique-se de que o PowerShell esteja apontado para o diretório da área de trabalho. O prompt de comando será semelhante a este:

PS C: / Usuários / você / Desktop>

Caso contrário, você terá que se lembrar de todos os comandos DOS antigos; cd, dir,. \, etc para fazer o PowerShell apontar para a área de trabalho. Tente novamente, se não funcionar, leia a mensagem de erro para ajudar a descobrir o problema

. / test1

Etapa 3: escrever e depurar um arquivo de lote

Abra o Bloco de notas e copie o seguinte texto:

PING localhost -n 180> NUL

powershell.exe. / SendPic.ps1 shutdown -s -t 100

A instrução PING é um hack real que envia uma solicitação de comunicação a cada segundo 180 vezes. O atraso deve ser longo o suficiente para que o computador seja inicializado, estabeleça a conectividade com a Internet e tire uma foto com a webcam. As versões mais recentes do Windows suportam TIMEOUT - muito mais limpo.

A próxima instrução executa o arquivo PowerShell que envia o e-mail com a foto anexada.

A declaração final faz com que o computador seja desligado após um atraso de 100 segundos. Este tempo é escolhido como suficiente para enviar o e-mail.

Salve o arquivo em sua área de trabalho como SendPic.bat (não. TXT, como acontecerá se você não adicionar a extensão ao nome do arquivo. Arraste e solte o arquivo na pasta STARTUP do Windows.

Clique duas vezes no ícone do arquivo em lote. Você deve receber o e-mail. Uau! Muito fácil. Sim, bem, muita coisa pode dar errado.

Depurando

O problema com a depuração desse arquivo.bat e do arquivo.ps1 anterior é que os erros piscam muito rapidamente para serem lidos. Você pode desacelerar com:

PAUSA

PING localhost -n 180> NUL PAUSE powershell.exe. / SendPic.ps1 PAUSE desligamento -s -t 100 PAUSE

PAUSE irá esperar que você pressione a tecla ENTER. Leia a mensagem de erro. Novamente, é provavelmente um problema de diretório. Depois de corrigir o problema, remova as instruções PAUSE, caso contrário, o programa travará.

Se você deseja encerrar o arquivo em lote durante a execução, clique em na janela cmd aberta e digite ^ C (Ctrl C).

Etapa 4: Resumindo

Embrulhando-o
Embrulhando-o

Os desktops antigos que executam o Windows não são conhecidos por sua confiabilidade. Qual é a primeira coisa que você faz quando o computador se embala? Desligue a energia! Então é isso que vamos fazer. Encontre um interruptor AC Timer no Walmart ou Amazon. Os baratos são mecânicos (menos de $ 10), os mais caros são eletrônicos (mais de $ 20). Programe o switch para ligar, por exemplo, 8h e desligar 15 minutos depois. Conecte seu computador na tomada do temporizador.

Quando o interruptor do cronômetro envia energia para o seu computador, a seguinte sequência de eventos é iniciada:

  1. BIOS detecta energia AC, o computador inicializa
  2. O Windows é iniciado (sem conexão de senha)
  3. O programa da webcam é iniciado e tira a foto
  4. A execução do arquivo em lote começa
    1. Atraso para conclusão do processo de inicialização, captura de imagem e conexão com a Internet
    2. Execute o arquivo PowerShell para enviar e-mail com anexo
    3. Atraso para conclusão de e-mail
    4. Desligar o computador

O interruptor do temporizador, então, removerá a energia do computador. Esta é a chave para uma operação autônoma confiável. Já sobrevivi a falhas intermitentes de disco rígido, interrupções de programas e outros bloqueios de computador, mas quando o sistema falha, ele volta após um ciclo de energia.

Essa abordagem é facilmente adaptável ao monitoramento de segurança, por exemplo, use o iSpy para obter um videoclipe curto quando o movimento for detectado e enviar um e-mail com um anexo de vídeo. Na verdade, o conceito poderia ser estendido para enviar um alerta por e-mail na detecção de algum evento e com a adição de um Arduino e dos sensores físicos disponíveis naquele universo - o céu é o limite!

Recomendado: