Digitalizar para e-mail com o Brother MFC7860DW

Recentemente, comprei o multifuncional Brother MFC7860, principalmente porque queria a capacidade de digitalizar diretamente para e-mail. No entanto, não consigo imaginar como alguém que não é tecnicamente experiente poderia fazer isso funcionar.

Por um lado, o recurso de digitalização para e-mail não é habilitado por padrão e requer que você baixe uma atualização de firmware do site da Brother para habilitá-lo. Não ajuda o fato de eles chamarem esse recurso de ‘i-Fax’ em vez de ‘Digitalizar para e-mail’, como você esperaria!

Depois de atualizar o firmware, você pode configurar o servidor STMP fazendo login no console da web da impressora. No entanto, o firmware não oferece suporte a SMTP sobre SSL, mas oferece suporte à autenticação SMTP.

Eu uso o Verizon FIOS como meu ISP. Atualmente, a maioria dos ISP bloqueia as conexões de saída para a porta 25 para combater o spam e exige que você use o servidor SMTP ou se conecte a um servidor de e-mail em outra porta além da 25, que geralmente funciona em SSL.

Verizon exigiu que você SSL para conectar seu servidor STMP, e esta impressora não oferece suporte, então isso está fora. O servidor SMTP do Gmail também. No entanto, me deparei com um servidor SMTP não divulgado (outgoing.verizon.net) que a Verizon tinha que permitia conexões de texto simples com autenticação MD5 e tinha as coisas funcionando.

Isso até hoje, quando percebi que a função de digitalização para e-mail parou de funcionar e a impressora deu uma mensagem curta ‘Falha no envio’ sem outros detalhes.

Tive que descobrir o que estava acontecendo quando a impressora se conectou ao servidor SMTP, então executei um proxy tcp usando netcat e fiz a impressora falar com o SMTP da verizon por meio do meu proxy, para que eu pudesse capturar a conversa. Veja como executei o proxy

nc -l -p 12345 < pipe | tee outgoing.log | nc outgoing.verizon.net 25 | tee pipe incoming.log

Olhando os logs, pude ver que o servidor STMP estava desligando com algum erro interno depois que o cliente tentou passar o hash MD5 da senha. Mais sobre CRAM-MD5 aqui

 220 vms173005pub.verizon.net -- Server ESMTP (Sun Java(tm) System Messaging Server 7u2-7.02 32bit (built Apr 16 2009))
ehlo z

250-vms173005pub.verizon.net
250-8BITMIME
250-PIPELINING
250-CHUNKING
250-DSN
250-ENHANCEDSTATUSCODES
250-HELP
250-XLOOP F927C8A28F98062CC04CA5B90AD7447C
250-AUTH DIGEST-MD5 PLAIN LOGIN CRAM-MD5
250-AUTH=LOGIN PLAIN
250-ETRN
250-NO-SOLICITING
250 SIZE 20971520
AUTH LOGIN CRAM
-MD5 <hash>
415 Authentication Error.

Então, neste ponto, eu sei que algo está quebrado com o servidor SMTP da Verizon, já que estava divulgando o suporte para CRAM-MD5, mas falhou ao tentar usá-lo, embora eu tivesse a senha certa, e poderia isolar o problema com a configuração do servidor SMTP .

Como eu precisava de um servidor SMTP que rodasse na porta diferente de 25, mas não exigia TLS, acabei me inscrevendo em um plano gratuito com SendGrid e usando seu servidor STMP para rodar seus servidores na porta 2525 além de 25. SendGrid requer você deve ter um domínio e apontar o CNAME de email.domain.com para sendgrid.net antes de ativar sua conta. Depois que minha conta foi provisionada, o recurso de digitalização para e-mail finalmente funcionou como esperado!

Também descobri que o smtp-cli é útil para depuração porque tem um modo detalhado que mostra a conversa SMTP exata quando você tenta enviar e-mail e ajuda a garantir que todos os detalhes de acesso estejam corretos.

~/bin $ ./smtp-cli-3.4 --verbose --host=smtp.sendgrid.net --port 2525 --enable-auth --user zoheb --from scanner@zoheb.com --to xxx@gmail.com --data test --disable-ssl
Enter password for zoheb@smtp.sendgrid.net :
Connection from 192.168.1.9:61487 to 50.97.69.148:2525
[220] 'mi5 ESMTP service ready'
> EHLO localhost
[250] '96.224.196.138'
[250] '8BITMIME'
[250] 'SIZE 20480000'
[250] 'AUTH=PLAIN LOGIN'
[250] 'AUTH PLAIN LOGIN'
[250] 'STARTTLS'
Starting TLS...
> STARTTLS
[220] 'Begin TLS negotiation now'
Using cipher: DHE-RSA-AES256-SHA
Subject Name: /OU=Domain Control Validated/CN=*.smtp.sendgrid.net
Issuer Name: /C=US/ST=Arizona/L=Scottsdale/O=GoDaddy.com, Inc./OU=http://certificates.godaddy.com/repository/CN=Go Daddy Secure Certification Authority/serialNumber=07969287
> EHLO localhost
[250] '96.224.196.138'
[250] '8BITMIME'
[250] 'SIZE 20480000'
[250] 'AUTH=PLAIN LOGIN'
[250] 'AUTH PLAIN LOGIN'
AUTH method
(PLAIN LOGIN): using LOGIN
> AUTH LOGIN
[334] 'xxxx'
> xxxx
[334] 'xxx
> xxxx

[235] '
Authentication successful.'
Authentication of zoheb@smtp.sendgrid.net succeeded

> MAIL FROM: <scanner@zoheb.com>

[250] '
Sender address accepted'
> RCPT TO: <xxxx@gmail.com>

[250] '
Recipient address accepted'
> DATA

[354] '
Continue'
[250] '
Delivery in progress'
> QUIT

[221] '
See you later'