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

Email Com Anexo


Paulo Nobre

Pergunta

Bom Dia Prezados Colegas

Usando a função shellexecute da api do windows...

ShellExecute(handle,'open','mailto: email@provedor.com.br,nil,nil,SW_SHOW)

mandamos um email para email@provedor.com.br.

Perguntas(Minhas dúvidas):

Como nesta função podemos incluir o assunto?

Se tenho um txt na pasta C:\Meus Documentos, como faço para mandá-lo em anexo?

Grato pela juda!

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Olá Paulo,

Tenta assim...

Mail := 'mailto:email@empresa.com.br?subject=texto do subject &?';

ShellExecute(GetDesktopWindow,'open',pchar(Mail),nil,nil,sw_ShowNormal);

Eu não sei se você consegue anexar pelo Outlook.

Dê uma olhada neste link. Procure no link freeware SMComponent (lado esquerdo) o componente TSMMAPIMail (no fim da página).

http://www.scalabium.com/

Abs.

Kiko

Link para o comentário
Compartilhar em outros sites

  • 0

Olá Paulo,

essa eu já testei e deu certinho.

unit Umail;

interface

uses

  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

  StdCtrls, shellapi;

type

  TForm1 = class(TForm)

    Button1: TButton;

    OpenDialog: TOpenDialog;

    cbSendFile: TCheckBox;

    EditDe: TEdit;

    EditPara: TEdit;

    Label1: TLabel;

    Para: TLabel;

    Memo1: TMemo;

    EditAssunto: TEdit;

    Label2: TLabel;

    Label3: TLabel;

    procedure Button1Click(Sender: TObject);

    procedure cbSendFileClick(Sender: TObject);

    procedure FormShow(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  Form1: TForm1;

implementation

{$R *.DFM}

uses MAPI;

function EnviarEMail(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;

end;

procedure TForm1.cbSendFileClick(Sender: TObject);

begin

  if cbSendFile.Checked then begin

     if OpenDialog.Execute then

        cbSendFile.Caption := OpenDialog.Filename

     else cbSendFile.Checked := False;

  end else cbSendFile.Caption := '&Attach Text File';

end;

procedure TForm1.Button1Click(Sender: TObject);

var anexo:string;

begin

  if cbSendFile.Checked then

     anexo:= cbSendFile.Caption

  else anexo := '';

  EnviarEMail(EditDe.Text,EditPara.Text,EditAssunto.text, Memo1.Text, anexo, True);

end;

procedure TForm1.FormShow(Sender: TObject);

begin

  EditDe.Text := 'meu_e-mail@provedor.com.br';

end;

end.

Abs. Progr'amador. wink.gif

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...