estou tentando enviar email usando o gmail.. o pior e que na minha maquina funciona.. ja nos clientes nao. estou usando as dlls. do site http://indy.fulgan.com/SSL/ mas mesmo assim nao esta funcionando.. abaixo esta a rotina que uso pra enviar email... sempre da erro dizendo que eu tenho que chamar STARTTLS antes.. mas nao sei como proceder..
-------------------------- codigo ----------------------------------- class procedure TEmail.enviaEmail(servidor_usuario, servidor_senha, servidor_host, email_de_quem_enviou, email_destino, email_copia, assunto, mensagem: string; servidor_porta: integer; autenticacao : boolean; anexo: string); var IdMessage : tIdMessage; IdSMTP : tIdSMTP; sll : tIdSSLIOHandlerSocketOpenSSL; Anx : TIdAttachmentFile; procedure mostraAviso(texto: string; progresso: integer); begin if formenviandoemail = nil then begin formenviandoemail := tformenviandoemail.create(nil); formenviandoemail.g.progress := 0; end; formenviandoemail.Show; formenviandoemail.acao.caption := texto; formenviandoemail.G.progress := progresso; Application.ProcessMessages; end; begin //criando os objetos... mostraAviso('Configurando para acessar conta...',0); IdMessage := tIdMessage.create(nil); IdSMTP := tIdSMTP.create(nil); sll := tIdSSLIOHandlerSocketOpenSSL.Create(nil); IdSMTP.ReadTimeOut := 20000; // Configura o servidor if autenticacao then begin mostraAviso('Autenticando...',1); sll.SSLOptions.Method := sslvSSLv2; sll.SSLOptions.Mode := sslmClient; //sslmUnassigned; idSMTP.IOHandler := sll; idSMTP.UseTLS := utUseExplicitTLS;// utUseRequireTLS; end; idsmtp.Username := servidor_usuario; // Usuário idsmtp.Password := servidor_senha; // Senha idsmtp.host := servidor_host; // Smtp idsmtp.Port := servidor_porta; // Porta // Configura o remetente da Mensagem mostraAviso('Configurando Assunto...',2); IdMessage.Clear; IdMessage.Subject := LowerCase(assunto); // Assunto do Email IdMessage.From.Address := email_de_quem_enviou; // De quem e o Email //Configura os destinatários (to) mostraAviso('Configurando email que vai receber msg...',3); IdMessage.Recipients.Clear; IdMessage.Recipients.Add; IdMessage.Recipients.Items[IdMessage.Recipients.Count-1].Address := email_destino; // Para quem vai IdMessage.Recipients.Items[IdMessage.Recipients.Count-1].Name := copy(email_destino,1,pos('@',email_destino)-1); // Configura os destinatários (cc) if email_Copia <> '' then begin mostraAviso('Configurando Cópia de Email...',4); IdMessage.Recipients.Clear; IdMessage.Recipients.Add; IdMessage.Recipients.Items[IdMessage.Recipients.Count-1].Address := email_Copia; IdMessage.Recipients.Items[IdMessage.Recipients.Count-1].Name := copy(email_Copia,1,pos('@',email_copia)-1); end; // Adiciona o HTML ao corpo da mensagem mostraAviso('Adicionando Texto a msg...',5); idmessage.ContentType:= 'text/html'; IdMessage.Body.clear; IdMessage.body.Text := mensagem; {// Anexa os arquivos // for I := 0 to lstbxAnexos.items.count -1 do} if anexo <> '' then begin mostraAviso('Conectando ao servidor SMTP..',6); anx:= TIdAttachmentFile.Create(IdMessage.MessageParts, TFileName(anexo)); IdMessage.ContentType := 'multipart/mixed'; end; IdMessage.Headers.Values['X-Library'] := ''; // Envia Email try try mostraAviso('Conectando ao servidor SMTP..',7); idsmtp.connect; if idsmtp.connected then begin mostraAviso('Enviando msg..',8); idSmtp.send(IdMessage); end; mostraAviso('Msg enviada',9); showMessage('MENSAGEM ENCAMINHADA COM SUCESSO'); except on E:exception do Showmessage('Problemas ao Conectar/enviar mensagem... Tente Novamente'+#13+ e.message); end; finally idSmtp.disconnect; end; mostraAviso('Finalizando..',8); //limpando memoria IdMessage.free; IdSMTP.Free; if formenviandoemail <> nil then begin formenviandoemail.free; formenviandoemail:= nil; end; end; ---------------------------- fim -------------------------------------- -- ------------------------------------------------------------------- Rafael jorge alves (Analista/desenvolvedor) www.sistemafocus.com.br sistema focus de gestão comercial e serviços em informatica. ------------------------------------------------------------------- [As partes desta mensagem que não continham texto foram removidas]