1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

reencaminhar mail to a php script

Discussão em 'Web Development' iniciada por _rcosta_, 11 de Setembro de 2008. (Respostas: 4; Visualizações: 596)

  1. _rcosta_

    _rcosta_ Power Member

    Bem eu pretendo fazer o reencaminhamento do mail de uma conta para um script php.
    Ja fiz o piping no cpanel do mail para o script. O problema mesmo é que nao sei o que tenho que colocar no script para ele conseguir "receber" as mensagens de email recebidas.
     
  2. krunch

    krunch Power Member

    Se fazes isso por pipes, o mail vai parar ao stdin.
    Tens de fazer algo do genero: fopen("php://stdin", "r")
    e ler como se fosse um ficheiro normal.
     
  3. _rcosta_

    _rcosta_ Power Member

    eu tenho esse código, mas como sei se ele processou ou não o mail com sucesso. Ha alguma forma de registar os erros que ocorrem no processamento?
    Código:
     #!/usr/bin/php -q
    <?php
    // read from stdin 
    $fd = fopen("php://stdin", "r"); 
    $email = ""; 
    while (!feof($fd)) { 
    $email .= fread($fd, 1024); 
    } 
    fclose($fd); 
    
    // handle email 
    
    $lines = explode("\n", $email); 
    
    // empty vars 
    
    $from = ""; 
    $subject = ""; 
    $headers = ""; 
    $message = ""; 
    $splittingheaders = true; 
    
    for ($i=0; $i < count($lines); $i++) { 
    if ($splittingheaders) { 
    // this is a header 
    $headers .= $lines[$i]."\n"; 
    // look out for special headers 
    if (preg_match("/^Subject: (.*)/", $lines[$i], $matches)) { 
    $subject = $matches[1]; 
    } 
    if (preg_match("/^From: (.*)/", $lines[$i], $matches)) { 
    $from = $matches[1]; 
    } 
    } else { 
    // not a header, but message 
    $message .= $lines[$i]."\n"; 
    } 
    
    if (trim($lines[$i])=="") { 
    // empty line, header section has ended 
    $splittingheaders = false; 
    } 
    }
    
    ?>
     
  4. krunch

    krunch Power Member

    Sugestao: Para ter a certeza que recebes o mail no script, faz o open do stdin e escreve tudo o que les para um ficheiro txt, pex. Podes escrever até frases de controlo para ter a certeza do que está a acontecer.
    Este é um metodo basico de debug para estes casos.

    Só nao percebi... o que queres fazer com esse codigo? O codigo apenas parte o mail em partes, mas nao faz nada com ele.
     
  5. _rcosta_

    _rcosta_ Power Member

    A ideia é pra ja processar o email e obter as variaveis from , texto, etc. depois o que faço é postar o conteudo do email num site tipo blog. Mas pra ja ainda estou na parte de obtençao dos parametros de email. So que ja fiz isso com o ficheiro do texto e o script nao chega nem sequer a ser executado.
     

Partilhar esta Página