Ir para conteúdo
Fórum Script Brasil
  • 0

Enviar E-mail No Delphi 3


ashburner

Pergunta

2 respostass a esta questão

Posts Recomendados

  • 0

Enviar até dá, o problema é que todos os servidores de e-mail agora (até os grátis) estão exigindo autenticação pra enviar, ou seja, em muitos casos só do site do provedor pra consuguir enviar. Em alguns casos nem pelo Outlook é mais possível. Eu passei por um problema desses, enviei um e-mail pro Hotmail perguntando se havia alguma possibilidade de enviar e-mail pelo outlook com o código abaixo e eles disseram que agora só com o tal do Hotmail Plus (aquele que você paga 60 conto por ano, a caixa tem 2 GB e você pode enviar e receber anexos de até 20 MB), isso porque eles dizem que assim vai diminuir a "spameação", mas se você tiver um e-mail do Hotmail que tenha sido feito antes de setembro é possível enviar com essa rotina ou então teste com o e-mail do seu provedor, talvez dê certo.

function TFrmEnvioPedido.EnviarEmailPadrao(const De, Para, Assunto, Texto,
  Arquivo: string; Confirma: Boolean): Integer;
var 
  Msg: TMapiMessage; 
  lpSender, lpRecepient: TMapiRecipDesc;
  FileAttach: TMapiFileDesc; 
  SM: TFNMapiSendMail; 
  MAPIModule: HModule; 
  Flags: Cardinal;
begin 
  // cria propriedades da mensagem 
  FillChar(Msg, SizeOf(Msg), 0); 
  with Msg do 
    begin 
      if (Assunto <> '') then 
        lpszSubject := PChar(Assunto); 

      if (Texto <> '') then 
        lpszNoteText := PChar(Texto); 

      // remetente 
      if (De <> '') then 
        begin 
          lpSender.ulRecipClass := MAPI_ORIG; 
          lpSender.lpszName := PChar(De); 
          lpSender.lpszAddress := PChar(De); 
          lpSender.ulReserved := 0; 
          lpSender.ulEIDSize := 0; 
          lpSender.lpEntryID := nil; 
          lpOriginator := @lpSender; 
        end; 

      // destinatário 
      if (Para <> '') then 
        begin 
          lpRecepient.ulRecipClass := MAPI_TO; 
          lpRecepient.lpszName := PChar(Para); 
          lpRecepient.lpszAddress := PChar(Para); 
          lpRecepient.ulReserved := 0; 
          lpRecepient.ulEIDSize := 0; 
          lpRecepient.lpEntryID := nil; 
          nRecipCount := 1; 
          lpRecips := @lpRecepient; 
        end 
      else 
        lpRecips := nil; 

      // arquivo anexo 
      if (Arquivo = '') then 
        begin 
          nFileCount := 0; 
          lpFiles := nil; 
        end 
      else 
        begin 
          FillChar(FileAttach, SizeOf(FileAttach), 0); 
          FileAttach.nPosition := Cardinal($FFFFFFFF); 
          FileAttach.lpszPathName := PChar(Arquivo); 
          nFileCount := 1; 
          lpFiles := @FileAttach; 
        end; 
    end; 

  // carrega dll e o método para envio do email 
  MAPIModule := LoadLibrary(PChar(MAPIDLL)); 

  if MAPIModule = 0 then 
    Result := -1 
  else 
    try 
      if Confirma then 
        Flags := MAPI_DIALOG or MAPI_LOGON_UI 
      else 
        Flags := 0; 

      @SM := GetProcAddress(MAPIModule, 'MAPISendMail'); 

      if @SM <> nil then 
        Result := SM(0, Application.Handle, Msg, Flags, 0) 
      else 
        Result := 1; 
    finally 
      FreeLibrary(MAPIModule); 

end;
Código do botão enviar:
EnviarEmailPadrao('seuemail@provedor.com.br','emaildestino@provedor.com.br','Assunto','Mensagem','arquivo anexo',false);

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...