Ver Mensaje Individual
  #10  
Antiguo 30-06-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Reputación: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Bueno, aquí está el código, a ver si te sirve para algo, es muy antiguo, de hace unos 11 años, pero hay muchas empresas que siguen usándolo, sin problemas:

Uso el MAPImail de Scalabium Software

Código Delphi [-]
procedure TfrmMailing.btSendEmailClick(Sender: TObject);
var
  iX, iEmails : Cardinal;
begin
  mapiEmail.Recipients.Text:='';
  mapiEmail.Attachments.Text:='';
  iEmails := 0;
  //
  if (edMailTo.Text='') or (edSubject.Text='') then
  begin
    MensajeAviso('Debe escribir una dirección de email y un asunto');
    edMailTo.SetFocus;
    abort;
  end;
  //
  mapiEmail.Recipients.Add( edMailTo.Text );
  inc( iEmails );   // el edMailTo
  //
  try // Ahora le damos las direcciones para BCC
    mtD.DisableControls;  // <- esto es una tabla en memoria, en tu caso el checklistbox
    mtD.First;
    while not mtD.Eof do
    begin
      if mtD.FieldByName('sacar').AsInteger = 1 then
      begin
        mapiEmail.Recipients.Add( 'BCC:'+mtD.FieldByName('email').AsString );
        Inc( iEmails );
      end;
      mtD.Next;
    end;
    mtD.First;
    mtD.EnableControls;
  except
    MensajeError('Error al crear los emails BCC');
    abort;
  end;
  //
  if iEmails < 1 then
  begin
    MensajeAviso('No hay ningún destinatario para el email');
    exit; //abort;
  end;
  //
  if MensajeConfirmacion('Se va a enviar el mensaje a '+
                          IntToStr(iEmails)+' destinos, ¿Desea continuar?')<>mrYes then
    exit; //abort;
  //
  if lbAdj.Items.Count > 0 then
  begin
    try // Añadimos los Adjuntos
      for iX := 0 to lbAdj.Items.Count-1 do
        mapiEmail.Attachments.Add( lbAdj.Items.Strings[iX] );
    except
      MensajeError('Error al añadir los archivos adjuntos');
      exit; //abort;
    end;
  end;
  //
  try // Enviar el mensaje
    mapiEmail.Subject := edSubject.Text;
    mapiEmail.Body := reText.Lines.Text;
    //
    mapiEmail.EditDialog := false; //true;  PARA QUE SE MUESTRE EL PROGRAMA DE CORREO O NO. !!!!!!!
    //
    mapiEmail.Send;
    //
    iX := mapiEmail.LastError;
    if iX <> SUCCESS_SUCCESS then
      MensajeAviso('No se pudo enviar el mailing'#13#10'Error: '+IntToStr(iX)+' -> '+MAPIErrorDescription(iX))
    else
      MensajeAviso('Mailing enviado.');
  except
    MensajeError('Error de datos para el email');
    abort;
  end;
end;
Responder Con Cita