Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

EderDias

Erro Ao Montar Mensagem De Email, Outlook express

Recommended Posts

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

Ola..Marcio.

 

  Citar

Versões do windows igual ?

R.: Sim usamos todos WinXp Prof.

 

  Citar

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.