[FUG-BR] Postfix: Manipular anexos grandes

Giancarlo Rubio gianrubio em gmail.com
Sexta Novembro 21 17:47:36 BRST 2008


2008/11/21 Daniel Nerd <nerdjgua em yahoo.com.br>:
> Boa tarde pessoal
>
> Estou com Postfix + Amavisdnew + Clamav + SA + CourierImap e FreeBSD 7.0 aqui funcionando tudo certinho.
>
> Aqui na empresa os engenheiros precisam enviar projetos e/ou outros documentos grandes, que geralmente ultrapassam 100MB, para nossos clientes e parceiros. Por e-mail isso é impossível, já que limitei os anexos a 10MB.
>
> A solução atual: quando o usuário necessita, o mesmo abre uma requisição ao nosso setor pedindo para postar arquivos em nosso FTP que fica na Locaweb, onde tenho que gerar usuário e senha específico para o cliente e enviar um e-mail a ele indicando o link.
> Por motivos de política interna de segurança, não deixamos nossos usuários acessarem FTP, nem tampouco enviar arquivos por conta própria.
> A solução atual evidentemente é inconveniente para as duas partes.
>
> A solução que "penso" ser a ideal: o usuário envia o e-mail normalmente com o anexo de 100MB. O MTA não rejeita, ao invés disso, encaminha essa mensagem para um script tratar ela. O script separa o anexo da mensagem, criptografa ele, envia o mesmo para um servidor HTTP ou FTP, e na mensagem deixa apenas o link do anexo, com a devida senha que gerou automaticamente.
>
> Gostaria de saber se alguém usa alguma solução pronta pra isso ou sabe de algum projeto que já faça isso.
>
> Senão houver, estou motivado a fazê-lo, pois creio ser a melhor opção para controle+conveniência do usuário e dos administradores da empresa.
>
Não esqueça do OFF antes da postagem...

Não sei se existe pronta mais na minha cabeça bolei algo assim.

Usuário posta um email para ftp em dominio. Dentro do home deste usuário
tem um .procmail que executa um shell para as tarefas.
Separa o anexo do email
Um script em expect + shell envia por ftp este anexo
Posta o e-mail com o diretório ftp do arquivo. Esta parte de gerar
senha vc teria que bolar algo

Meu script em expect que envia arquivo por ftp
#
#!/usr/local/bin/expect
#
# expectFtp.sh

set COMMAND [lindex $argv 0]
set SERVER [lindex $argv 1]
set USER [lindex $argv 2]
set PASSWORD [lindex $argv 3]
set DIR [lindex $argv 4]
set FILE [lindex $argv 5]

spawn ftp $SERVER
#Envia usuario
expect "Name:\\s*"
send "$USER\r"
#Envia senha
expect "Password:\\s*"
send "$PASSWORD\r"
#Transmissao binaria
expect "ftp>"
send "bin\r"
expect "ftp>"
send "prompt\r"
expect "ftp>"
send "cd $DIR\r"
if { "$COMMAND" == "UPLOAD" } {
send "send $FILE\r"}
if { "$COMMAND" == "DOWNLOAD" } {
send "mget $FILE\r"}
expect "ftp>"
send "bye\r"
expect eof

expectFtp.sh UPLOAD HOST USER PASS FOLDER FILE


Eh por ai a solução...

> Dêem suas sugestões, e caso alguém queira se juntar à minha idéia, seja bem-vindo.
>
> Obrigado
> Daniel Faustino
>
>
>
>      Veja quais são os assuntos do momento no Yahoo! +Buscados
> http://br.maisbuscados.yahoo.com
> -------------------------
> Histórico: http://www.fug.com.br/historico/html/freebsd/
> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>



-- 
---
Giancarlo Rubio


Mais detalhes sobre a lista de discussão freebsd