Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-11-2014
nnebli nnebli is offline
Miembro
NULL
 
Registrado: may 2011
Posts: 14
Poder: 0
nnebli Va por buen camino
Enviar e-mail desde terra.com, gmail.com, yahoo.es, movistar.es, hotmail.com, etc.

Después de haber estado buscando por Internet la forma de enviar e-mail desde diversas cuentas de correo como terra.com, gmail.com, yahoo.es, movistar.es, hotmail.com, etc. no he visto nada que realmente deje claro (a los ojos de los poco curtidos en el tema como yo) como enviarlos. Por eso, y bajo la sugerencia de Newton (al que agradezco desde ya su ayuda), he creado este hilo para intentar que en el mismo se quede claro como enviar e-mail desde distintas cuentas de correo.

En Delphi al Límite ví un ejemplo que funcionó perfectamente con 'terra.com', lo he adaptado un poco para poder enviar varios ficheros adjuntos. Lo pongo a continuación para quien le pueda ser útil.

Agradecería que quien tenga código para enviar un e-mail con más de un fichero adjunto desde distintas cuentas de correo (terra.com, gmail.com, yahoo.es, movistar.es, hotmail.com, etc.) que lo ponga a continuación y así podrá servir de ayuda a todo aquel que lo necesite. Por favor, intentad que el código que se ponga funcione correctamente sin tener que hacer modificaciones apreciables, y si hay que hacerlas, explicarlas para que todos las podamos entender, incluido los menos duchos en Delphi. Gracias.

Código para enviar un e-mail desde 'terra.com' con varios ficheros adjuntos, utiliznado Delphi 7 y Windows XP:

Código Delphi [-]
// Nota: utilizamos varios TEdit para recoger información como el asunto del mensaje, usuario, contraseña, etc.
 
unit EnviarEMailConDelphi7;
interface
uses
IdSMTP, IdMessage, // he añadido estas dos
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;
type
TFPEnviarEMailConDelphi7 = class(TForm)
btnEnviarMensaje: TButton;
Label1: TLabel;
edUsuario: TEdit;
Label2: TLabel;
edContrasenna: TEdit;
Label3: TLabel;
edAsunto: TEdit;
Label4: TLabel;
edDestinatario1: TEdit;
Label5: TLabel;
edTextoDelEmail: TEdit;
procedure btnEnviarMensajeClick(Sender: TObject);
procedure CompruebaTecla(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FPEnviarEMailConDelphi7: TFPEnviarEMailConDelphi7;
 
implementation
Const
// definiemos el máximo número de ficheros adjuntos que se van a poder utilizar
MaximoNumeroDeFicherosAdjuntosp = 5;
var
// definimos aquí este Array para que podamos tener acceso desde cualquier sitio de este programa
RutaYNombreDelFicheroAAdjuntarp : Array[1..MaximoNumeroDeFicherosAdjuntosp] of String;
 
{$R *.dfm}
 
 
procedure EnviarMensaje( sUsuario, sClave, sHost, sAsunto, sDestino, sMensaje: String );
var
SMTP: TIdSMTP;
Mensaje: TIdMessage;
Adjunto : Array[1..MaximoNumeroDeFicherosAdjuntosp] of TIdAttachment;
repite : Integer;
begin
// Creamos el componente de conexión con el servidor
SMTP := TIdSMTP.Create( nil );
SMTP.Username := sUsuario;
SMTP.Password := sClave;
SMTP.Host := sHost;
SMTP.Port := 25;
SMTP.AuthenticationType := atLogin;
// Creamos el contenido del mensaje
Mensaje := TIdMessage.Create( nil );
Mensaje.Clear;
Mensaje.From.Name := sDestino;
Mensaje.From.Address := sDestino;
Mensaje.Subject := sAsunto;
Mensaje.Body.Text := sMensaje;
Mensaje.Recipients.Add;
Mensaje.Recipients.Items[0].Address := sDestino;
 
// adjunta todos los ficheros que se hayan indicado. Máximo 5 ficheros de acuerdo con la definción del Array: RutaYNombreDelFicheroAAdjuntarp
For repite := 1 To MaximoNumeroDeFicherosAdjuntosp Do
Begin
// Si hay que meter un archivo adjunto lo creamos y lo asignamos al mensaje
if RutaYNombreDelFicheroAAdjuntarp[repite] <> '' then
begin
// si existe el fichero a adjuntar lo adjunta
if FileExists( RutaYNombreDelFicheroAAdjuntarp[repite] ) then
Adjunto[repite] := TIdAttachment.Create( Mensaje.MessageParts, RutaYNombreDelFicheroAAdjuntarp[repite] );
end
else
Adjunto[repite] := nil;
End;
// fin de: adjunta todos los ficheros que se hayan indicado. Máximo 10 fichero de acuerdo con la definción del Array: RutaYNombreDelFicheroAAdjuntarp
 
// Conectamos con el servidor SMTP
try
SMTP.Connect;
except
raise Exception.Create( 'Error al conectar con el servidor. ' );
end;
 
// Si ha conectado enviamos el mensaje y desconectamos
if SMTP.Connected then
begin
try
SMTP.Send( Mensaje );
except
raise Exception.Create( 'Error al enviar el mensaje. ' );
end;
try
SMTP.Disconnect;
except
raise Exception.Create( 'Error al desconectar del servidor. ' );
end;
end;
 
// Liberamos los objetos creados
For repite := 1 To MaximoNumeroDeFicherosAdjuntosp Do
if Adjunto[repite] <> nil then
FreeAndNil( Adjunto[repite] );
 
FreeAndNil( Mensaje );
FreeAndNil( SMTP );
 
Application.MessageBox( 'Mensaje enviado correctamente. ','Fin de proceso',MB_ICONINFORMATION );
 
end;
 
procedure TFPEnviarEMailConDelphi7.btnEnviarMensajeClick(Sender: TObject);
Var
Usuariop : String;
Clavep : String;
AsuntoMensajep : String;
DireccionDestinop : String;
TextoDelMensajep : String;
begin
// recuperamos de los TEdit los datos
Usuariop := edUsuario.Text;
Clavep := edContrasenna.Text;
AsuntoMensajep := edAsunto.Text;
DireccionDestinop := edDestinatario1.Text;
TextoDelMensajep := edTextoDelEmail.Text;
 
// indicamos la ruta y el nombre donde están los ficheros a adjuntar
RutaYNombreDelFicheroAAdjuntarp[1] := 'C:\documento1.zip';
RutaYNombreDelFicheroAAdjuntarp[2] := 'C:\documento2.zip';
RutaYNombreDelFicheroAAdjuntarp[3] := 'C:\documento3.zip';
RutaYNombreDelFicheroAAdjuntarp[4] := 'C:\documento4.zip';
RutaYNombreDelFicheroAAdjuntarp[5] := 'C:\documento5.zip';
 
// Vamos al procedimiento que envía el mensaje. Nota: Como este correo se envía desde 'terra.com' ponemos: 'smtp.terra.com'
EnviarMensaje( Usuariop, Clavep, 'smtp.terra.com', AsuntoMensajep, DireccionDestinop, TextoDelMensajep);
 
end;
 
procedure TFPEnviarEMailConDelphi7.CompruebaTecla(Sender: TObject;var Key: Char);
begin
If Key = #27 Then
Close;
end;
end.

Fin de: Código para enviar un e-mail desde 'terra.com' con varios ficheros adjuntos, utiliznado Delphi 7 y Windows XP:

Última edición por dec fecha: 16-11-2014 a las 15:03:39. Razón: Añadir etiquetas DELPHI
Responder Con Cita
 



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
enviar un correo desde ¿ yahoo, gmail ? avmm2004 Internet 1 24-01-2012 18:15:17
Enviar mail a hotmail o yahoo gabirojas Varios 6 29-08-2008 15:05:11
enviar un email desde delphi a hotmail o gmail abraham SQL 30 06-08-2007 16:46:20
enviar correos con TNMSMTP a cuentas gratuitas (Hotmail, Gmail, etc.) agustibaldo Internet 5 17-07-2007 15:29:31
A Comparison of Live Hotmail, Gmail and Yahoo Mail marcoszorrilla Noticias 0 09-02-2007 23:16:53


La franja horaria es GMT +2. Ahora son las 18:48:07.


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