Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-06-2012
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.669
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví 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
  #2  
Antiguo 30-06-2012
Loviedo Loviedo is offline
Miembro
 
Registrado: dic 2004
Posts: 214
Poder: 0
Loviedo cantidad desconocida en este momento
Gracias. Lo probaré.
Saludos.
Responder Con Cita
  #3  
Antiguo 30-06-2012
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Aunque no es exactamente lo que quieres quizás te sirva alguna parte del código:

Código Delphi [-]
procedure TfrConAlumnos.spCorreoClick(Sender: TObject);
Var
i:integer;
stlCorreo:TStringList;
nVacios:Integer;
s:String;
begin
stlCorreo:= TStringList.Create;
nVacios:=0;

  for i := 0 to frConAlumnos.Reja.SelectedRows.Count-1 do
  begin
  frConAlumnos.Reja.DataSource.DataSet.Bookmark := frConAlumnos.Reja.SelectedRows[i];

   if (pos('@',DmoJuanes.AlumnosCorreoel.AsString) > 0) and (pos('.',DmoJuanes.AlumnosCorreoel.AsString) > 0) then
   stlCorreo.Add(Trim(DmoJuanes.AlumnosCorreoel.Value)+';')
   else
   nVacios:=nVacios + 1;

  end;

  if nVacios > 0 then
  ShowMessage('Atención: Se han encontrado direcciones incorrectas en la selección y se han omitido.');

ShellExecute(0, 'open', PAnsiChar('Mailto:'+stlcorreo.CommaText), nil, nil,0);
stlCorreo.Free;
end;

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #4  
Antiguo 30-06-2012
Loviedo Loviedo is offline
Miembro
 
Registrado: dic 2004
Posts: 214
Poder: 0
Loviedo cantidad desconocida en este momento
Lo del Sr. Casimaimiro no me da error, pero llama al 'outlook', yo utilizo 'yahoo', también probé con 'gmail', pero el resultado es el mismo.
Muchas gracias. la solucíon del Sr. Marcoszorrilla de momento funciona. El envío masivo es para una comunidad de propietarios, y solo somos 26.
Saludos.
Responder Con Cita
  #5  
Antiguo 30-06-2012
Loviedo Loviedo is offline
Miembro
 
Registrado: dic 2004
Posts: 214
Poder: 0
Loviedo cantidad desconocida en este momento
Encontré el fallo.
El componente Indy no admite 'pepe@yahoo' como dirección de correo, pero si '[email protected]' aunque las dos son incorrectas.
Saludos.
Responder Con Cita
  #6  
Antiguo 30-06-2012
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.669
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Cita:
Empezado por Loviedo Ver Mensaje
Encontré el fallo.
El componente Indy no admite 'pepe@yahoo' como dirección de correo, pero si '[email protected]' aunque las dos son incorrectas.
Saludos.
Claro, no puedes saber si una dirección es correcta o no, sólo puedes verificar que tiene la arroba y el punto. Pero de todas formas, Indy (o lo que uses) debe enviar el mensaje a su destinatario, aunque no exista. Ya se encargará yahoo/gmail/elquesea de devolverte el mensaje indicando que la dirección no existe.

Así que si verificas y eliminas las direcciones incorrectas, por ejemplo con el código que te ha pasado antes marcoszorrilla, ya podrás enviar todos tus emails sin problemas.
Aunque para enviar 26 emails, que son muy poquitos, puedes verificarlo visualmente tú mismo en unos segundos de que están correctos y te quitas de problema.
Saludos.
Responder Con Cita
  #7  
Antiguo 30-06-2012
Loviedo Loviedo is offline
Miembro
 
Registrado: dic 2004
Posts: 214
Poder: 0
Loviedo cantidad desconocida en este momento
En el primer caso (pepe@yahoo) el error lo detecta el componente Indy, en el segundo ([email protected]), es Yahoo quien avisa de que la direccion no existe.
Saludos y gracias por todo.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Envio de correo con y sin autenticacion kharen Internet 4 30-05-2011 18:34:23
Envio de correo Besto Internet 1 22-11-2010 11:01:35
Duda Envio de Correo jlalvarez OOP 6 19-12-2007 21:28:32
Fallo al enviar correo electrónico User_Baja_2 Internet 1 04-02-2006 23:54:34
envio de correo srangel Linux 0 22-04-2005 17:44:56


La franja horaria es GMT +2. Ahora son las 01:35:37.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi