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 ); try mtD.DisableControls; 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; end;
if MensajeConfirmacion('Se va a enviar el mensaje a '+
IntToStr(iEmails)+' destinos, ¿Desea continuar?')<>mrYes then
exit; if lbAdj.Items.Count > 0 then
begin
try 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; end;
end;
try mapiEmail.Subject := edSubject.Text;
mapiEmail.Body := reText.Lines.Text;
mapiEmail.EditDialog := false; 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;