Então, estou utilizando um script para enviar e-mails para multiplos destinários pelo Delphi.
Segue o código-fonte:
var// objetos necessários para o funcionamentoIdSSLIOHandlerSocket:TIdSSLIOHandlerSocket;IdSMTP:TIdSMTP;IdMessage:TIdMessage;CaminhoAnexo:string;begin// instanciação dos objetosIdSSLIOHandlerSocket:=TIdSSLIOHandlerSocket.Create(Self);IdSMTP:=TIdSMTP.Create(Self);IdMessage:=TIdMessage.Create(Self);try// Configuração do SSLIdSSLIOHandlerSocket.SSLOptions.Method:= sslvSSLv23;IdSSLIOHandlerSocket.SSLOptions.Mode:= sslmClient;// Configuração do SMTPIdSMTP.IOHandler:=IdSSLIOHandlerSocket;IdSMTP.AuthenticationType:= atLogin;IdSMTP.Port:=465;IdSMTP.Host:='smtp.gmail.com';IdSMTP.Username:='usuario';IdSMTP.Password:='senha';// Tentativa de conexão e autenticaçãotryIdSMTP.Connect;IdSMTP.Authenticate;except
on E:ExceptiondobeginMessageDlg('Erro na conexão e/ou autenticação: '+
E.Message, mtWarning,[mbOK],0);Exit;end;end;// Configuração da mensagemIdMessage.From.Address:='meu.email@gmail.com';IdMessage.From.Name:='Meu Nome';IdMessage.ReplyTo.EMailAddresses:=IdMessage.From.Address;IdMessage.Recipients.EMailAddresses:='destinatario@email.com';IdMessage.Subject:='Assunto do e-mail';IdMessage.Body.Text:='Corpo do e-mail';// Anexo da mensagem (opcional)CaminhoAnexo:='C:\Anexo.txt';ifFileExists(CaminhoAnexo)thenTIdAttachment.Create(IdMessage.MessageParts,CaminhoAnexo);// Envio da mensagemtryIdSMTP.Send(IdMessage);MessageDlg('Mensagem enviada com sucesso.', mtInformation,[mbOK],0);exceptOn E:ExceptiondoMessageDlg('Erro ao enviar a mensagem: '+
E.Message, mtWarning,[mbOK],0);end;finally// liberação dos objetos da memóriaFreeAndNil(IdMessage);FreeAndNil(IdSSLIOHandlerSocket);FreeAndNil(IdSMTP);end;end;
Até ai tudo bem, o envio vai perfeitamente para minha caixa de entrada, porém quando envio para vários destinários ao mesmo tempo á minha aplicação trava.
Queria saber como para minha aplicação autenticar o envio conforme enviado para o destinário com um delay de 3 segundos para envio de cada mensagem, por por exemplo:
Enviado e-mail para : destinario1@hotmail.com - OK!
Delay (3) segundos.
Enviado e-mail para : destinario2@hotmail.com - OK!
Delay (3) segundos.
Enviado e-mail para : destinario3@hotmail.com - OK!
Delay (3) segundos.
Envio de e-mail market completo, você já pode fechar á aplicação.
Com base nesse script em perl.
#!/usr/local/bin/perl
$ARGC=@ARGV;if($ARGC !=4){
printf "Você deve ter digitado os comandos de forma errada\n";
printf "Veja como usar corretamente...\n";
printf "perl $0 <mailist> <remetente\@mail.com> <assunto> <corpo.html>\n";
printf "Exemplo: perl $0 lista01.txt peu\@msn.com Ola index.html\n";exit(1);}
$mailtype ="content-type: text/html";
$sendmail ='/usr/sbin/sendmail';
$sender = $ARGV[1];
$subject = $ARGV[2];
$efile = $ARGV[0];
$emar = $ARGV[0];
open(FOO, $ARGV[3]);@foo=<FOO>;
$corpo =join("\n",@foo);
open (BANDFIT,"$emar")||die"Can't Open $emar";
$cont=0;while(<BANDFIT>){($ID,$options)= split(/\|/,$_);
chop($options);foreach($ID){
$recipient = $ID;
open (SENDMAIL,"| $sendmail -t");print SENDMAIL "$mailtype\n";print SENDMAIL "Subject: $subject\n";print SENDMAIL "From: $sender\n";print SENDMAIL "To: $recipient\n\n";print SENDMAIL "$corpo\n\n";
close (SENDMAIL);
$cont=$cont+1;
printf "$cont Enviado para $recipient";}}
close(BANDFIT);
Utilizamos cookies e tecnologias semelhantes de acordo com a nossa Política de Privacidade, e ao continuar navegando, você concorda com estas condições.
Pergunta
Kali
Olá amigos da Scripbrasil.
Então, estou utilizando um script para enviar e-mails para multiplos destinários pelo Delphi.
Segue o código-fonte:
Até ai tudo bem, o envio vai perfeitamente para minha caixa de entrada, porém quando envio para vários destinários ao mesmo tempo á minha aplicação trava.
Queria saber como para minha aplicação autenticar o envio conforme enviado para o destinário com um delay de 3 segundos para envio de cada mensagem, por por exemplo:
Enviado e-mail para : destinario1@hotmail.com - OK!
Delay (3) segundos.
Enviado e-mail para : destinario2@hotmail.com - OK!
Delay (3) segundos.
Enviado e-mail para : destinario3@hotmail.com - OK!
Delay (3) segundos.
Envio de e-mail market completo, você já pode fechar á aplicação.
Com base nesse script em perl.
Abraços, espero que alguém me ajude!!
Link para o comentário
Compartilhar em outros sites
12 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.