É possível um encaminhador de correio sem um domínio?

4

Estou tentando usar Arduinos habilitados para rede para instrumentar algumas coisas pela casa. Por exemplo, eu gostaria que minha secadora me enviasse um texto quando terminasse. Portanto, seria útil ter um servidor de correio local em uma caixa do Linux, que o Arduino pudesse se comunicar com (não criptografado) usando comandos SMTP. O servidor encaminharia a mensagem gerada pelo Arduino para [email protected], resultando no recebimento do texto. Nunca precisarei receber e-mails com esse servidor e não quero que os Arduinos se comuniquem fora da minha rede local.

É possível configurar um encaminhador de mensagens como esse sem ter um nome de domínio?

    
por TheGear 02.07.2016 / 22:01

2 respostas

4

Os Arduinos podem ser todos bons e-mails do sendmail para o lado de fora sem acesso (direto) à Internet .

Para isso, você precisa:

  • configure uma retransmissão de email na porta 25, por exemplo, postfix, em uma caixa com acesso à Internet, autorizando sua rede interna ou a rede do arduino, caso elas sejam uma LAN / VLAN separada
  • use APIs no seu código para o e-mail do sendmail dos Arduinos baseados na comunicação com a porta 25 via TCP, e não através da API do sendmail. Designar a máquina de retransmissão / proxy via IP como o retransmissor SMTP. ( smtplib in python se for dado um endereço SMTP por exemplo)
  • Designe o endereço FROM como algo com um domínio existente fora ou mais raramente, dependendo do servidor com o qual você está falando, com um email existente; caso contrário, medidas anti-spam deixam o email. (isso é importante, na maioria das vezes os tickets que recebo dos desenvolvedores são devidos a isso). O domínio do email não precisa ser seu, mas receberá menos pontos de spam, se for.

Se, no futuro, você precisar configurar outras caixas Linux mais potentes (como pi ou clones framboesa), ssmtp também é um serviço bom e muito leve para poder usar a API sendmail mais eficiente para retransmitir email < em> de uma caixa sem acesso direto à Internet (é isso que estou usando).

Na verdade, a parte difícil não é lidar com os arduinos enviando e-mails sem conectividade com a Internet; é devido a possíveis medidas anti-spam e de segurança do servidor SMTP e / ou do seu provedor doméstico. Por exemplo, em algumas partes do mundo, os ISPs rotineiramente bloqueiam a porta 25 / TCP (SMTP) para os clientes domésticos. Se chegar a esse ponto, sugiro abrir outra pergunta complementar.

    
por 03.07.2016 / 11:13
1

Escreva um pequeno script "proxy".

Algo que funciona, por ex. netcat ou socat com uma porta ouvindo na interface de rede interna à qual seus arduinos estão conectados. socat , em seguida, alimenta-o para um, e. script de shell, que usa um cliente de email em lote para enviar o email via mms.att.net para cada "telegrama" recebido dos arduinos.

Se você não precisar enviar nada, pode ser tão fácil quanto:

nc -k -l 8888 | while read sender telegram ; do echo $sender sent: $telegram ; done

Em seguida, substitua a chamada echo por algo como mail -s $sender $telegram <other_options> . Adicione alguns "tratamento de erros" se desejado / necessário.

Se você tiver que usar comandos SMTP nos arduinos para enviar (em vez de texto bruto sobre conexão TCP), então você terá que manipular algo com, por exemplo, expect para responder as coisas corretas, após os arduinos enviarem MAIL FROM: .... RCPT TO: .... etc.

    
por 02.07.2016 / 22:32

Tags