Ir para conteúdo

POWERED BY:

Arquivado

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

P3rukao

[Resolvido] PHPmailer com erro de anexo

Recommended Posts

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

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_limit

http://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

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

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

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

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

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

×

Informação importante

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