P3rukao 0 Denunciar post Postado Abril 22, 2009 lá gente... seguinte... eu estou usando o phpmailer para envio de emails em meus sites... porém um de meus clientes solicitou a opção de envio de anexos junto as mensagens... Eu configurei o script e tah funcionando certinho... porém quando o arquivo eh muito grande.... o servidor cancela a conexão depois de 30 segundos... e eu não consigo de jeito-maneira-nenhuma... enviar um arquivo com uns 10 mb por exemplo... e o meu servidor aceita até 50... pelo que eu vi lah no phpinfo();. upload_max_filesize -> 50M O erro que que dá eh esse: [b]Fatal error[/b]: Maximum execution time of 30 seconds exceeded in [b]D:\www\phpmailer\class.smtp.php[/b] on line [b]425[/b] e o meu código que está funfando lgl... porém dando esse erro: $mail = new PHPMailer(); $mail->SetLanguage("br","../phpmailer/language/"); $mail->IsHTML(true); // envio como HTML se 'true' $mail->WordWrap = 50; // Definição de quebra de linha $mail->IsSMTP(); // send via SMTP $mail->SMTPAuth = true; // 'true' para autenticação $mail->Mailer = "smtp"; //Usando protocolo SMTP $mail->Host = "smtp.meusite.com.br"; //seu servidor SMTP $mail->Username = "contato@meusite.com.br"; $mail->Password = "minhasenha"; // senha de SMTP $mail->From = $to; $mail->FromName = $nome; $mail->AddAttachment($arquivo["tmp_name"],$arquivo["name"], $encoding, $arquivo["type"]); // Anexo $mail->AddAddress("meuemail@gmail.com","nome); //para quem o email sera enviado //=========== Conteudo do Email ============ $subject="Arquivo do Cliente"; $message=" <h1> <i>» Arquivo do Cliente «</i></h1> <sub>Data de envio: $data</sub> <br /> <br /> <p><b>Nome:</b> $nome </p> <p><b>Remetente:</b> $email</p> <p><b>Assunto:</b> $assunto</p> <p><b>Sobre:</b> $sobre</p> "; $mail->Body = $message; $mail->Subject = $subject; if(!$mail->Send()){ alerta("Ocorreu um erro durante o envio do seu email. Erro: " . $mail->ErrorInfo, $servidor."navegacao/enviararquivo.php"); } else { alerta("Email enviado com sucesso !", $servidor."navegacao/enviararquivo.php"); } Eu até pensei que seria o caso de implementar um sisteminha de upload de anexos que nem no email do gmail ou do yahoo... onde o arquivo eh anexado a mensagem dinamicamente... e depois que ele está anexado... eu posso enviar o email finalmente.... Porém eu naum faço a menor idéia de como fazer isso... :blink: Alguém sabe o porque do servidor cancelar a conexão... e como eu arrumo isso??? E pra ajudar ainda mais... como eu poderia fazer o sisteminha de anexo que citei agorinha??? Compartilhar este post Link para o post Compartilhar em outros sites
P3rukao 0 Denunciar post Postado Abril 23, 2009 MAis Hein!!??? :huh: :blink: Os problemas continnuam mesmo assim... ¬¬ Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Abril 23, 2009 upload_max_filesize -> 50M O erro que que dá eh esse: [b]Fatal error[/b]: Maximum execution time of 30 seconds exceeded in [b]D:\www\phpmailer\class.smtp.php[/b] on line [b]425[/b] use set_time_limithttp://br2.php.net/set_time_limit E pra ajudar ainda mais... como eu poderia fazer o sisteminha de anexo que citei agorinha???Ai, você teria que fazer o upload com AJAX..disparando a função de upload, ao sair do input file... Compartilhar este post Link para o post Compartilhar em outros sites
P3rukao 0 Denunciar post Postado Abril 23, 2009 Humm... intendi... com ajax... intaum vou ter que esperar mais um pouco... eh muito avançado pra mim ainda... =P Agora... em relação ao set_time_limit,..., eu uso o locaweb como servidor de hospedagem... e ele costuma ter uns certos bloqueios para algumas funcões do PHP... eu tenho sempre que pedir para eles ajeitarem coisas... Será q essa função set_time... funcionaria assim mesmo??? e... Seria exagero por algo como 20 minutos, por exemplo, para o tempo limite do script??? Compartilhar este post Link para o post Compartilhar em outros sites
P3rukao 0 Denunciar post Postado Abril 23, 2009 Willian... eu estou tentando achar uma forma de usar o ajax para isso... achei até uns scripts legais que usam o framework EXT.... porém não faço idéia de como usar isso para o anexo de arquivos ao email... tipo... usando esse recurso de ajax... eu enviaria direto a um servidor o arquivo..... mas acho que ele naum iria como anexo de mensagem.... =/ Alguém sabes como me ajudar nisso??? Compartilhar este post Link para o post Compartilhar em outros sites
amdoim 0 Denunciar post Postado Abril 24, 2009 olá P3rukao rapah eu consegui enviar o email com o anexo normal mas não estou conseguindo enviar um anexo ligeiramente grande ele vai e dá o seguinte erro: Fatal error: Maximum execution time of 30 seconds exceeded in M:\sites\projetos\enviar.email\class.smtp.php on line 428 eu vi la o que o bruno disse mas não sei onde e como aplicar o set_time_limit. você conseguiu resolver isso? abraçU Compartilhar este post Link para o post Compartilhar em outros sites
P3rukao 0 Denunciar post Postado Maio 5, 2009 VIGI amdoim.... já faz um tempinho que eu terminei esse trabalho... daí nem lembro agora qual foi a solução que eu butei lah... se foi usando esse método ou arrisquei algum outro.... mas eu me lembro que deu certo nos testes que fiz sim.... eh soh tu por no arquivo que você recebe os dados para enviar.... tipo... no inicio do arquivo.... daí ele funciona lgl... procura uma definição aí lah no site do php... no manual deve ter alguma coisa falando da função... eu lembro que fiz isso.. nas já eskeci.... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Abraço... Compartilhar este post Link para o post Compartilhar em outros sites
amdoim 0 Denunciar post Postado Maio 7, 2009 opa rei agora que eu vi o poste mas eu tbm consegui resolver só foi prestar atenção na descrição da função Define o número de segundos durante os quais é permitido a execução do script. Se este limite é atingido, o script retorna um erro fatal. O limite padrão é de 30 segundos, ou se existir o valor definido o valor max_execution_time definido no php.ini. Se seconds for definido como zero, não é imposto nenhum limite. e ai foi facim obrigado por responder abraçU Compartilhar este post Link para o post Compartilhar em outros sites