mruoppolo 14 Denunciar post Postado Dezembro 21, 2015 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
mruoppolo 14 Denunciar post Postado Dezembro 21, 2015 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