Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

mruoppolo

Imap não abre caixas

Recommended Posts

Olá, tudo bem?

 

Tenho um pequeno problema, estou criando uma caixa de emails totalmente com php imap, esta caixa deve integrar com o cPanel, apenas para que os clientes não tenham acesso ao cPanel, eles precisam gerenciar tudo dentro da interface do site.

 

Eu utilizei as funções imap_open e consigo puxar todos os e-mails da caixa de entrada tranquilamente, o problema é quando eu tento puxar de outras pastas.

 

Quando eu utilizei a função imap_getmailboxes() ele me retornou um array sem nenhum nome de caixa:

 

array(1) { [0]=> object(stdClass)#3 (3) { ["name"]=> string(33) "{diretashop.com.br:110/pop3}INBOX" ["attributes"]=> int(1) ["delimiter"]=> string(0) "" } }

 

Porém se eu acesso pelo nomedosite.com.br/webmail ele mostra 5 pastas que seriam: entrada, enviados, rascunhos, spam e lixeira.

 

Eu descobri que na verdade quando eu efetuo a conexão eu coloco o nome da caixa, a função de conexão que estou utilizando é a seguinte:

function pop3_login($host,$port,$user,$pass,$folder="INBOX",$ssl=false)
{
    $ssl=($ssl==false)?"/novalidate-cert":"";
    return (imap_open("{"."$host:$port/pop3$ssl"."}$folder",$user,$pass));
}

Então resolvi mudar a $folder para "Sent", no intuito de pegar os e-mails da pasta de enviados, porém não foi, ai encontrei um outro artigo no site da locaweb que mostra uma outra forma de listar as pastas e lá eu consegui o nome das pastas, no caso, a pasta de enviados aparece como '"INBOX.Sent" então eu fiz esta alteração na variável $folders, mas mesmo assim ele não puxa os e-mails, ele da um erro dizendo que não pode conectar.

 

Como eu posso puxar as outras pastas??

 

Obrigado :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui resolver, ficou o seguinte, eu passo o nome da pasta via get na URL e caso a página venha sem este parâmetro get eu simplesmente pego a caixa de entrada:

 $host = "imap.nomedosite.com.br";
    if(isset($_GET['folder'])){
        $folder=$_GET['folder'];
    }else{
        $folder='INBOX';
    }
    $caixaDeCorreio = imap_open("{".$host.":143/novalidate-cert}".$folder, $usuario, $senha);

E agora ta tudo ok :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.