Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [Delphi] Invio e-mail a più indirizzi

    Ciao a tutti, sto sviluppato un'applicazione che utilizza un database firebird, il db contiene una tabella referenti composta da vari campi, fra cui quello relativo all'indirizzo e-mail, adesso ho la necessità di creare una procedura che mi generi una mailing list, o meglio, cliccando su un pulsante di una delle form dovrei aprire il client di posta elettronica e popolare il campo A: con i nomi dei destinatari, quindi, ho inserito fra le uses ShellApi ed ho creato la seguente procedura:
    codice:
    procedure TfrmVisResp.btnMailingListClick(Sender: TObject);
    var
      gname, mail, gmail:string;
    begin
      while not DMSsn.Referenti.eof do
        begin
            gname:=DMSsn.ReferentiEMAIL.AsString;
            gmail:=trim(gname)+';';
            DMSsn.Referenti.Next;
            ListBox1.Items.Add(gmail);
            if ListBox1.Items.Text<>';' then
            begin
              mail:=trim(ListBox1.Items.Text);
              ShellExecute(Handle, 'open', PChar('mailto:'+mail), nil, nil, SW_SHOWNORMAL);
            end;
        end;
    end;
    Avviando l'applicazione e cliccando sul pulsante btnMailingList si aprono tante finestre quanti sono i campi contenuti nella tabella ed il campo destinatario del client viene popolato incrementando di volta in volta la stringa email finchè non si arriva alla fine della tabella. Come posso ovviare a questo problema, cioè avviare una sola finestra del client di posta con tutti i destinatari?

  2. #2
    Se può servire a qualcuno, ho risolto il problema spostando il comando ShellExecute() dopo aver chiuso il secondo begin...end, quindi:
    codice:
    procedure TfrmVisResp.btnMailingListClick(Sender: TObject);
    var
      gname, mail, gmail:string;
    begin
      while not DMSsn.Referenti.eof do
        begin
            gname:=DMSsn.ReferentiEMAIL.AsString;
            gmail:=trim(gname)+';';
            DMSsn.Referenti.Next;
            ListBox1.Items.Add(gmail);
            if ListBox1.Items.Text<>';' then
            begin
              mail:=trim(ListBox1.Items.Text);
            end;
        end;
          ShellExecute(Handle, 'open', PChar('mailto:'+mail), nil, nil, SW_SHOWNORMAL);
    end;

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.