EderDias 0 Denunciar post Postado Novembro 29, 2007 Ola..pessoal. Estou com um problema numa maquina do usuario neste maquina eu fiz uma rotina pra montar email usando o Outlook express... Então agora ao clickar no botão da a seguinte mensagem de erro: Error While Trying to send email Eu uso esta função pra mandar o email: Uses Mapi function SendEMail(Handle: THandle; Mail: TStrings): Cardinal; type TAttachAccessArray = array [0..0] of TMapiFileDesc; PAttachAccessArray = ^TAttachAccessArray; var MapiMessage: TMapiMessage; Receip: TMapiRecipDesc; Attachments: PAttachAccessArray; AttachCount: Integer; i1: integer; FileName: string; dwRet: Cardinal; MAPI_Session: Cardinal; WndList: Pointer; begin dwRet := MapiLogon(Handle, PChar(''), PChar(''), MAPI_LOGON_UI or MAPI_NEW_SESSION, 0, @MAPI_Session); if (dwRet <> SUCCESS_SUCCESS) then begin MessageBox(Handle, PChar('Error while trying to send email'), PChar('Error'), MB_ICONERROR or MB_OK); end else begin FillChar(MapiMessage, SizeOf(MapiMessage), #0); Attachments := nil; FillChar(Receip, SizeOf(Receip), #0); if Mail.Values['to'] <> '' then begin Receip.ulReserved := 0; Receip.ulRecipClass := MAPI_TO; Receip.lpszName := StrNew(PChar(Mail.Values['to'])); Receip.lpszAddress := StrNew(PChar('SMTP:' + Mail.Values['to'])); Receip.ulEIDSize := 0; MapiMessage.nRecipCount := 1; MapiMessage.lpRecips := @Receip; end; AttachCount := 0; for i1 := 0 to MaxInt do begin if Mail.Values['attachment' + IntToStr(i1)] = '' then break; Inc(AttachCount); end; if AttachCount > 0 then begin GetMem(Attachments, SizeOf(TMapiFileDesc) * AttachCount); for i1 := 0 to AttachCount - 1 do begin FileName := Mail.Values['attachment' + IntToStr(i1)]; Attachments[i1].ulReserved := 0; Attachments[i1].flFlags := 0; Attachments[i1].nPosition := ULONG($FFFFFFFF); Attachments[i1].lpszPathName := StrNew(PChar(FileName)); Attachments[i1].lpszFileName := StrNew(PChar(ExtractFileName(FileName))); Attachments[i1].lpFileType := nil; end; MapiMessage.nFileCount := AttachCount; MapiMessage.lpFiles := @Attachments^; end; if Mail.Values['subject'] <> '' then MapiMessage.lpszSubject := StrNew(PChar(Mail.Values['subject'])); if Mail.Values['body'] <> '' then MapiMessage.lpszNoteText := StrNew(PChar(Mail.Values['body'])); WndList := DisableTaskWindows(0); try Result := MapiSendMail(MAPI_Session, Handle, MapiMessage, MAPI_DIALOG, 0); finally EnableTaskWindows( WndList ); end; for i1 := 0 to AttachCount - 1 do begin StrDispose(Attachments[i1].lpszPathName); StrDispose(Attachments[i1].lpszFileName); end; if Assigned(MapiMessage.lpszSubject) then StrDispose(MapiMessage.lpszSubject); if Assigned(MapiMessage.lpszNoteText) then StrDispose(MapiMessage.lpszNoteText); if Assigned(Receip.lpszAddress) then StrDispose(Receip.lpszAddress); if Assigned(Receip.lpszName) then StrDispose(Receip.lpszName); MapiLogOff(MAPI_Session, Handle, 0, 0); end; end; exemplo de envio no botão: procedure TForm1.BitBtn5Click(Sender: TObject); var mail: TStringList; begin mail := TStringList.Create; try mail.values['to'] := 'Email@test.xyz'; ///AQUI VAI O EMAIL DO DESTINATARIO/// mail.values['subject'] := 'Hello'; ///AQUI O ASSUNTO/// mail.values['body'] := 'blah'; ///AQUI O TEXTO NO CORPO DO EMAIL/// mail.values['attachment0'] := 'C:\Test.txt'; ////AQUI O ENDEREÇO ONDE ENCONTRAM OS ARQUIVOS// mail.values['attachment1']:='C:\Test2.txt'; ///IDEM - NO ATTACHMENT1 TEM QUE COLOCAR A SEQUNCIA DO EMAIL A QUAL DESEJA ENVIAR EXEMPLO: ATTACHMENT1 sendEMail(Application.Handle, mail); finally mail.Free; end; end; Alguém teria alguma ideia pra resolver este problema?? só acontece em uma maquina...as outras usam o mesmo programa e não da erro. Agradecido.. Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Novembro 29, 2007 Versões do windows igual ? No outlook envia normal ? Compartilhar este post Link para o post Compartilhar em outros sites
EderDias 0 Denunciar post Postado Novembro 29, 2007 Ola..Marcio. Versões do windows igual ?R.: Sim usamos todos WinXp Prof. No outlook envia normal ?R.: usamos tbem Outlook express.....tudo normal...envia normalmente.... Este erro acontecia no passado qdo um usuario usava o Internet Explorer 5 ai eu pedir pra atualizar pro 6 e funciona legal. Mas agora todos estamos com versão atualizada, e somente uma maquina esta com este problema..... tens alguma Ideia?? parece algum problema interno do IE mas o outlook funciona legal. http://forum.imasters.com.br/public/style_emoticons/default/natal_sad.gif Grato Compartilhar este post Link para o post Compartilhar em outros sites