Página 1 de 2 12 ÚltimoÚltimo
+ Responder ao Tópico



  1. #1
    hunt3r
    Achei bem interessante a ideia do colega...

    Citação Postado originalmente por PatrickBrandao
    Voce pode usar o vpopmail para aprender as senhas, ou copia-las (o hash criptografado do shadow) para o campo no bando de dados, assim, quando o qmail e vpopmail estiverem funcionando, voce faz:

    # /mailhome/bin/vadddomain dominio.com.br senhadopostmaster
    # for linha in cat `/etc/shadow`; do
    # user=`echo $linha | cut -f1 -d:`
    # hash=`echo $linha | cut -f2 -d:`
    # /mailhome/bin/vadduser $user@dominio.com.br senhateste
    # mysql -u root -psenhadorootmysql vpopmail -e "update vpopmail set pw_passwd = '$hash' where pw_user = '$user' limit 1"
    # done

    com o codigo acima voce deve conseguir criar todos os usuario registrados em /etc/shadow e transferir a senha para o campo dele no banco de dados.

    outra opcao seria voce habilitar uma opcao no ./configure do vpopmail para ele aprender a senha quando o usuario nao definir uma, assim, voce cria a conta de deixa o campo pw_passwd no mysql em branco, a primeira vez que o usuario logar, ele guarda a senha digitada como sendo a verdadeira, acho que a opcao é learning, ou algo assim.

    para importar os e-mail, voce vai ter que usar um script chamado mailbox2maildir, encontrado no site www.qmail.org ou no google.

    boa sorte!

    Patrick Brandão
    o detalhe que me está assolando agora é:

    existe uma forma de importar as MENSAGENS dos usuarios tambem?

    os formatos usados pelo postfix/sendmail sao "compativeis" com o do qmail?

    ambos os 3 usam texto plano para armazenar os emails?

  2. #2
    Avenger
    Usam texto plano, mas a estrutura de armazenamento das mensagens é diferente. Me parece que há modo de armazenar tudo num mesmo arquivo ou aquele outro tipo Maildir que guarda em cur/new. Deste ultimo modo é até mais fácil a transição. O que você colocar no diretório 'new' ou 'cur' o cliente de e-mail do cliente vai receber. Então desde que você separe cada e-mail em um arquivo, basta meter ele no /home/vpopmail/dominio/usuario/Maildir/new que o usuário vai achar o e-mail aguardando ele 'bonitinho' na caixa de entrada do servidor.
    Já se for aquele tipo 'mbox' onde fica tudo no mesmo arquivo... você vai ter o trabalhão de separar os e-mails em arquivos e jogar na pasta 'maildir/new' do cliente.



  3. #3
    hunt3r
    primeiramente obrigado amigo...

    eu estava dando uma olhadinha, e realmente a estrutura, tanto de nomes de arquivo quanto de distribuicao das mensagens no postfix e diferente do qmail.....


    se entendi bem a tua observação, basta apenas eu copiar o arquivo de texto plano do
    /var/spool/mail/usuario

    para a pasta dominio/usuario/Maildir/new/

    do cara e ele vai conseguir interpretar? mesmo sem estar no formato de arquivos do qmail?

    Código :
    1129568184.29205.dominio.com.br,S=3548


    abracos

  4. #4
    hunt3r
    Citação Postado originalmente por Avenger
    Então desde que você separe cada e-mail em um arquivo, basta meter ele no /home/vpopmail/dominio/usuario/Maildir/new
    desculpa, nao li direito o post... :P


    mas existe algum "separador" de mensagens no arquivo de texto-plano do postfix?

    alguma string ou caractere que se possa reconhecer o final de uma mensagem e o inicio de outra?

    do contrario nao imagino um modo de separar as mensagens...

    e ainda tem a questao do formato do nome do arquivo no qmail...

    e ainda tem mais uma... (essa veio de conhecimento impírico)...
    se voce exceder 90 e poucos usuarios, ele muda a estrutura dos diretorios...

    ao inves de:
    ~vpopmail/domains/dominio.com.br/usuario/...

    ele comeca a criar "sub-pastas"
    ~vpopmail/domains/dominio.com.br/0/usuario1/...
    ~vpopmail/domains/dominio.com.br/0/usuario2/...
    ~vpopmail/domains/dominio.com.br/0/usuario3/...

    ~vpopmail/domains/dominio.com.br/1/usuario99999/...

    e assim por diante, entao ficam alguns na pasta "raiz"
    ~vpopmail/domains/dominio.com.br/

    e outros dentro dessas sub-pastas...
    (que coisa maluca!?!?!)



  5. #5
    Avenger
    Bem, sobre a 1.a questão, vem: (nome do arquivo)
    eu fiz:
    cd /home/vpopmail/domains/dominiolah/meuuser/Maildir/new
    echo "coco" >> cocozim

    Daí fui lá no meu outlook, chequei email e tava lá um e-mail sem recipiente nem remetente, cujo conteúdo (olhando o fonte da mensagem) constava 'coco' Então, qualquer coisa que você colocar no Maildir/new vai ficar disponível no servidor pop3. (eu uso qmail-pop3d)

    Segunda questão: (cortar o arquivo em formato mbox)
    Eu presumo que o formato do postfix seja o tão-falado 'Mbox'. O qmail tem um utilitário prá converter Maildir prá mbox, mas não o contrário. Daí vai ser uma questão de procurar no google mesmo, ou desenvolver um scriptzinho. Me parece que o MTA que usa o formato mbox (o qmail também suporta isso -- mas prefere maildir). Uma mensagem em mbox é dividida pela outra por 'uma linha em branco, e a linha seguinte contendo |From | (note que a linha começa com as letras F, r, o, m, e com o caractere 'espaço', daí pode ser seguida do que quiser. Então o segredo seria ler uma linha em branco seguida por uma cujos 5 primeiros caracteres batam com a casa do 'From<espaço>' (com primeiro F maiúsculo e o resto minúsculo).

    Terceira Questão: (diretórios malucos)
    Isso fica desse jeito prá não acumular tudo em um diretório só. Acho que nesse esquema aí o qmail totaliza uma capacidade prá 32 mil ou 32 milhões de contas de e-mails espalhadas pelos diretórios. É porque tem um limite de arquivos por diretório, daí ele faz esse esquema todo. Para pegar qual diretório é de que usuário, basta olhar o arquivo vpasswd no raiz do domínio. Para separar o diretório, em bash a partir do nome de usuário, faça isso:
    Código :
    #!/bin/bash
    user=ana
    domain=dominio.com.br
    matches="$(cat /home/vpopmail/domains/${domain}/vpasswd | \
      grep "${user}")"
    for ((counter=1;  \
           $counter "<=" $(echo "$matches"|wc -l); \
           counter=$(($counter+1)))); do
     match="$(echo "${matches}" | head -n $counter | tail -n 1)"
     if [ "$(echo "$match" | cut -f1 -d":")" == "${user}" ]; then
      echo "${match}" | cut -f6 -d":"
     fi
    done

    Aqui eu fiz um teste com um usuário que tinha nome parecido em umas 20 linhas do vpasswd e ele me deu o resultado correto!.. Acabei de fazer esse script e testar na prática, não deve te dar problemas e resolve o problema de não saber onde tal usuário pode estar. (a diferença é que aqui eu fiz em uma linha só sem quebrar uma sequer: caso o fato de essa interface quebrar linha atrapalhe, aí tá a linha completa (cola isso tudo em uma única linha!)
    Código :
    user=ana domain=dominio.com.br matches="$(cat /home/vpopmail/domains/${domain}/vpasswd | grep "${user}")"; for ((counter=1;$counter "<=" $(echo "$matches" | wc -l);counter=$(($counter+1)))); do match="$(echo "${matches}" | head -n $counter | tail -n 1)"; if [ "$(echo "$match" | cut -f1 -d":")" == "${user}" ]; then echo "${match}" | cut -f6 -d":";break;fi;done

    Espero que ajude!..






Tópicos Similares

  1. Sendmail Postfix php apache - quero mandar email
    Por darlon no fórum Servidores de Rede
    Respostas: 4
    Último Post: 20-06-2005, 10:31
  2. Sendmail, Postfix ou Qmail ???
    Por gil no fórum Servidores de Rede
    Respostas: 5
    Último Post: 04-05-2005, 18:01
  3. Sendmail / Postfix / Mailx / Mpack utilizando outro smtp
    Por spok no fórum Servidores de Rede
    Respostas: 0
    Último Post: 15-06-2004, 10:05
  4. if(Qmail || Sendmail || postfix == Segurança)
    Por smvda no fórum Servidores de Rede
    Respostas: 3
    Último Post: 01-04-2004, 07:45
  5. Sendmail/Postfix
    Por no fórum Servidores de Rede
    Respostas: 1
    Último Post: 03-06-2003, 16:14

Visite: BR-Linux ·  VivaOLinux ·  Dicas-L