Ver Mensaje Individual
  #10  
Antiguo 18-04-2023
AzqLaaClub AzqLaaClub is offline
Registrado
 
Registrado: abr 2023
Posts: 4
Reputación: 0
AzqLaaClub Va por buen camino
Exclamation NAda

Código Delphi [-]
<div style="margin:20px; margin-top:5px; ">
  <div class="smallfont" style="margin-bottom:2px">Cita:div>
  
class="alt2" style="border:1px inset"> <div> Empezado por ozsWizzard class="inlineimg" src="http://www.clubdelphi.com/foros/images/botones/viewpost.gif" border="0" alt="Ver Mensaje" /> div> <div style="font-style:italic">Ejemplo Gmail (Está escrito casi de cabeza mirando un programa mío, creo que está bien y debería funcionar:
class='delphi'><div class="frame_codigo_delphi">Código Delphi [-]<div id="delphi_div_665407ffa789a" class="texto_codigo_delphi">
class='keyword'>procedure Enviar;
class='keyword'>var
   SMTP: TIdSMTP;
   Mensaje: TIdMessage;
   i: Integer;
   lMens: class='keyword'>String;
   gmailssl: TIdSSLIOHandlerSocketOpenSSL;
   Para: TIdEmailAddressList;
class='keyword'>begin
   gmailIssl := TIdSSLIOHandlerSocketOpenSSL.Create(class='keyword'>nil);
   
   SMTP := class='keyword'>nil;
   SMTP := TIdSMTP.Create(class='keyword'>nil);
   class='keyword'>try   
      gmailssl.Destination = class='quote'>'smtp.gmail.com:587';
      gmailssl.Host = class='quote'>'smtp.gmail.com';
      gmailssl.Port = 587;

      SMTP.Username  := class='quote'>'usuario@gmail.com';
      SMTP.Password  := class='quote'>'Clave';
      SMTP.Host      := class='quote'>'smtp.gmail.com';
      SMTP.Port      := class='quote'>'587'; class='comment'>//'465 si es con SSL. Aunque esto no lo tengo claro del todo.
      SMTP.IOHandler := gmailSSL;
      SMTP.UseTLS    := utUseExplicitTLS;
      
      Mensaje := TIdMessage.Create(class='keyword'>nil);
      Para := TIdEmailAddressList.Create(class='keyword'>nil);
      Cuerpo := TStringList.Create;
      class='keyword'>try
         Mensaje.Clear;
         
         Mensaje.From.Name    := Desde;
         Mensaje.From.Address := Login;
         
         Para.Add.Address = class='quote'>'correo@correo.com'. class='comment'>//Es una lista
         Mensaje.Recipients := Para; 
         Mensaje.Subject    := class='quote'>'Asunto';
         Correo.Cuerpo.Add(class='quote'>'Cuerpo'); class='comment'>//Es una lista
         Mensaje.Body.Text  := Cuerpo.Text;
         
        class='comment'>//Aquí es donde va lo de los adjuntos 
        TIdAttachmentFile.Create(Mensaje.MessageParts, class='quote'>'direccionFichero'); class='comment'>//Es una lista         
         
         Mensaje.Priority := mpHighest;
            class='keyword'>try
               lMens := class='quote'>'Error al conectar con el servidor:';
               SMTP.Connect;
               class='comment'>// Si ha conectado enviamos el mensaje y desconectamos
               class='keyword'>if SMTP.Connected class='keyword'>then
               class='keyword'>begin
                  lMens := class='quote'>'Error al enviar el mensaje:';
                  SMTP.Send(Mensaje);

                  lMens := class='quote'>'Error al desconectar del servidor:';
                  SMTP.Disconnect;
               class='keyword'>end;
               class='comment'>//Sacar mensaje de correcto
            class='keyword'>except
               class='keyword'>on E:Exception class='keyword'>do
               class='keyword'>begin
                  lMens := lMens + class='quote'>' ' + E.class='keyword'>Message;
                  class='comment'>//Sacar mensaje de error
               class='keyword'>end;
            class='keyword'>end;

         class='keyword'>finally
            class='comment'>//Este error no debería de darse, se crear un count más de los que hay
            class='comment'>//cuando falla el envío
            class='keyword'>try
               class='keyword'>for i := 0 class='keyword'>to Mensaje.MessageParts.Count - 1 class='keyword'>do
                  TIdAttachmentFile(Mensaje.MessageParts[i]).Free;
            class='keyword'>except
            class='keyword'>end;
            Mensaje.Free;
            Para.Free;
            Cuerpo.Free;
      class='keyword'>end;
   class='keyword'>finally
      class='keyword'>if Assigned(SMTP)       class='keyword'>then SMTP.Free;
      class='keyword'>if Assigned(gmailIssl)  class='keyword'>then SMTP.Free;
   class='keyword'>end;
div>div>
Donde pone "//Es una lista" es que puedes poner esa línea dentro de un bucle y rellenar varios datos.
div>

Este ejemplo, me da este error: Invalid Pointer Operation. Como lo puedo corregir?
Responder Con Cita