Pesquisar na Comunidade
Mostrando resultados para as tags ''En''.
Encontrado 1 registro
-
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: var // objetos necessários para o funcionamento IdSSLIOHandlerSocket: TIdSSLIOHandlerSocket; IdSMTP: TIdSMTP; IdMessage: TIdMessage; CaminhoAnexo: string; begin // instanciação dos objetos IdSSLIOHandlerSocket := TIdSSLIOHandlerSocket.Create(Self); IdSMTP := TIdSMTP.Create(Self); IdMessage := TIdMessage.Create(Self); try // Configuração do SSL IdSSLIOHandlerSocket.SSLOptions.Method := sslvSSLv23; IdSSLIOHandlerSocket.SSLOptions.Mode := sslmClient; // Configuração do SMTP IdSMTP.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ção try IdSMTP.Connect; IdSMTP.Authenticate; except on E:Exception do begin MessageDlg('Erro na conexão e/ou autenticação: ' + E.Message, mtWarning, [mbOK], 0); Exit; end; end; // Configuração da mensagem IdMessage.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'; if FileExists(CaminhoAnexo) then TIdAttachment.Create(IdMessage.MessageParts, CaminhoAnexo); // Envio da mensagem try IdSMTP.Send(IdMessage); MessageDlg('Mensagem enviada com sucesso.', mtInformation, [mbOK], 0); except On E:Exception do MessageDlg('Erro ao enviar a mensagem: ' + E.Message, mtWarning, [mbOK], 0); end; finally // liberação dos objetos da memória FreeAndNil(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); Abraços, espero que alguém me ajude!!