Jump to content


Photo

Duvida Em Relação Ao Envio De Emails Com Php


  • Faça o login para participar
3 replies to this topic

#1 singleshot

singleshot

    Turista

  • Usuários
  • 31 posts
  • Sexo:Não informado

Posted 28/11/2006, 14:38

Boa tarde, minha duvida é o seguinte... tenho que enviar um e-mail com o mesmo conteudo (corpo) para 10000 destinatários (por exemplo), gostaria de saber como que faço para que no cabeçalho do e-mail não fique no campo "para:" o e-mail das 10000 pessoas...

estou utlizando o seguinte código:

<?
##---------------------------------------------------
## Envio de Emails pelo SMTP Autênticado usando PEAR
##---------------------------------------------------
# Mais detalhes sobre o PEAR:
# http://pear.php.net/
#
# Mais detalhes sobre o PEAR Mail:
# http://pear.php.net/...l.mail-mime.php
##---------------------------------------------------

# Faz o include do PEAR Mail.
include ("Mail.php");

# E-mail de destino. Caso seja mais de um destino, crie um array de e-mails.
# *OBRIGATÓRIO*
$recipients = 'email@seusite.com.br';

# Cabeçalho do e-mail.
$headers =
array (
'From' => 'email@seusite.com.br', # O 'From' é *OBRIGATÓRIO*.
'To' => 'DESTINATARIO@DominioDestinatario.com',
'Subject' => 'TITULO DO E-MAIL'
);

# Utilize esta opção caso deseje definir o e-mail de resposta
# $headers['Reply-To'] = 'EMailDeResposta@DominioDeResposta.com';

# Utilize esta opção caso deseje definir o e-mail de retorno em caso de erro de envio
# $headers['Errors-To'] = 'EMailDeRerornoDeERRO@DominioDeretornoDeErro.com';

# Utilize esta opção caso deseje definir a prioridade do e-mail
# $headers['X-Priority'] = '3'; # 1 UrgentMessage, 3 Normal

# Corpo da Mensagem
$body = 'Escreva aqui o texto do seu e-mail';

# Parâmetros para o SMTP. *OBRIGATÓRIO*
$params =
array (
'auth' => true, # Define que o SMTP requer autenticação.
'host' => 'smtp.seusite.com.br', # Servidor SMTP
'username' => 'usuario_conta_smtp', # Usuário do SMTP
'password' => 'senha_conta_smtp' # Senha do seu MailBox.
);

# Define o método de envio! queremos 'smtp'. *OBRIGATÓRIO*
$mail_object =& Mail::factory('smtp', $params);

# Envia o email. Se não ocorrer erro, retorna TRUE caso contrário, retorna um
# objeto PEAR_Error. Para ler a mensagem de erro, use o método 'getMessage()'.
$result = $mail_object->send($recipients, $headers, $body);
if (PEAR::IsError($result))
{
echo "ERRO ao tentar enviar o email. (" . $result->getMessage(). ")";
}
else
{
echo "Email enviado com sucesso!";
}
?>


-------------------------------
Crescendo e aprendendo...

#2 Fr0ZeN

Fr0ZeN

    12 Horas

  • Usuários
  • 124 posts
  • Sexo:Não informado

Posted 28/11/2006, 16:25

faça um loop e em cada loop envie para apenas um destinatario.

#3 singleshot

singleshot

    Turista

  • Usuários
  • 31 posts
  • Sexo:Não informado

Posted 28/11/2006, 18:52

faça um loop e em cada loop envie para apenas um destinatario.

Caro Fr0ZeN, já pensei nisto, mas fico meio duvidoso em relação ao tempo de execusão... tpw, vamos supor que tenho cadastrado 10000 emails, ao fazer um loop de 10000 esse comando não irá exceder o tempo limite de execusão do apache que é de 30 segundos?

O problema é que não tenho como testar isso, mas caso funcione ou não, gostaria de saber se existe outro método para se fazer isso..

Mesmo assim, obrigado Fr0ZeN..
-------------------------------
Crescendo e aprendendo...

#4 Fr0ZeN

Fr0ZeN

    12 Horas

  • Usuários
  • 124 posts
  • Sexo:Não informado

Posted 28/11/2006, 19:43

sleep() \o/
divida em blocos, e use um sleep com tempo suficiente pro servidor mandar outro bloco de emails




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq