Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   smtp (https://www.clubdelphi.com/foros/showthread.php?t=4562)

Ester 20-10-2003 17:56:29

smtp
 
Muy buenas,

he leido en alguna parte que una forma fácil de enviar mails desde delphi es utilizando el componente TNMSMTP. Es eso cierto? De donde puedo sacar este componente? (Lo que yo necesito es que además de rellenar el mail lo envie automaticamente sin que el usuario ni se entere, es esto posible?)

Grácias y un saludo,

Ester

Alejandra 21-10-2003 00:27:39

fijate en las demos que trae el delphi.

Saludos Alejandra

jachguate 21-10-2003 01:33:44

Te recomiendo que utilices las Indy (http://www.nevrona.com/indy) para programar para internet. A partir de la versión 6 o 7, son los componentes incluidos en el mismo Delphi, contando siempre con soporte para Delphi 3 en adelante.

Allí mismo encontrarás demos que te aclararán como enviar un Email desde tu aplicación.

Hasta luego.

;)

Ester 28-10-2003 13:34:11

Muy buenas,

he estado mirando la web de Indy pero no encuentro demos por ningun sitio, solo una lista de demos existentes pero no se como bajarmelas. Sabeis algun otro sitio donde pueda encontrar?


Grácias,

Ester

SnaKe 28-10-2003 16:33:25

Los componentes Indy vienen con delphi 6 y 7 (solapas de componentes indy) y te lo puedes bajar e incorporar para otras versiones anteriores de delphi.

Si tienes D6 o 7 vete al directorio ($DELPHI)\Demos\Indy y allí lo tendrás.

En cuanto al componente TNMSMTP lo puedes encontrar en la solapa de componentes FastNet (creo que era así).

Un saludo.

naker 10-11-2003 04:20:08

che, yo no tengo ese componente instalado! de donde lo puedo bajar??
cuando instale el delphi, hice la instalacion minima y no tengo esa solapa.
Como puedo hacer para instalarlo??
Desde ya, muchas gracias!
naker.-

jachguate 10-11-2003 07:43:05

En mi mensaje anterior está la dirección... :confused: :confused:

naker 10-11-2003 14:53:09

no, pero yo me referia al componente TNMSMTP :)

ViPer 26-11-2003 20:02:10

El componente TNMSMTP viene con el Delphi a partir de la version 5, creo.

A ver ai alguien puede ayudarme a mí en este mismo tema:
He conseguido enviar mensajes con el TNMSMTP, pero solo a las direcciones que entren en el dominio del host que le indico,
por ejemplo para el host "mailhost.terra.es" solo puedo enviar correo a las direcciones como "midirec@terra.es", y no a "midirec@msn.com" por ejemplo

¿Es que falla el componente o es así de estricto? ¿Como puedo obtener el host de una direccion email determinada?

Gracias, espero que algun generoso programador conteste.
Un saludo.

jachguate 26-11-2003 22:27:05

El host es tu servidor de correo. Es decir, el equipo que sirve la cuenta tuya.

Digamos, si tu cuenta es juan@miproveedor.com, regularmente mi proveedor te dará una dirección. Puede ser un ip, o algo como mail.miproveedor.com, o smtp.miproveedor.com. No hay un estandar para ello.

Luego, el que desde tu cuenta podas enviar mensajes a cualquier dirección o solo a direcciones del mismo dominio, depende de las capacidades y la configuración de ese servidor. Lo normal es que si podas enviar correo a cualquier@lado.com

hasta luego.

;)

ViPer 27-11-2003 18:17:42

Gracias. :)
Aunque entonces no sé cómo crear un proceso de envio de correo seguro y para todos los servidores...
supongo que alguien lo habrá hecho alguna vez... :(

Gracias de nuevo. Ciao.

naker 28-11-2003 01:41:32

che, yo logre hacerlo andar para cualquier dire de mail. Tal vez sea el server de smtp que le pusiste.
Aca te paso mi codigo:

NMSMTP1.Port:=25;
NMSMTP1.Host:='smtp.hotpop.com';
NMSMTP1.UserID:= 'nachomezzadra@hotpop.com' ;
if not (NMSMTP1.Connected) then
NMSMTP1.Connect;
NMSMTP1.PostMessage.FromAddress := 'tu_dir_de_mail@server.com';
NMSMTP1.PostMessage.FromName := 'Tu nombre';
NMSMTP1.PostMessage.ToAddress.Add(Form1.Edit1.Text);
NMSMTP1.PostMessage.Attachments.Text := 'mi_archivo.txt';
NMSMTP1.PostMessage.Body.Text:=memo1.Text;
NMSMTP1.SendMail;
NMSMTP1.Disconnect;

Saludos y espero q te sirva!
naker.-

ViPer 28-11-2003 18:47:03

Gracias naker, pero la unica diferencia con el mio es que le pasas el UserID, y lo he intentado asi y va igual. Mirad, aqui teneis la funcion completa, con copiar y pegar se puede probar y decirme si funciona.

procedure TForm1.ENVIAR_CORREO(WHOST: String; WPORT: Integer; WDIRREM, WDIRDEST, WASUN, WMEN: String);
begin
if InetIsOffline(0) then
begin
ShowMessage('No conectado a Internet');
Exit;
end;
////
with NMSMTP1 do
begin
// Host y Puerto de correo ...
Host:=WHOST;
Port:=25;
UserID:='usuario@terra.es';
// conectando ...
try
Memo1.Lines.Add('Conectando con '+ WHOST +', puerto '+ EPort.Text);
Connect;
except
Memo1.Lines.Add('Fallo en la conexion con el servidor SMTP.');
Exit;
end;
Memo1.Lines.Add('Componiendo mail ...');
// borra parametros por defecto ...
ClearParameters();
// Dirección origen ...
PostMessage.FromAddress:=WDIRREM;
Memo1.Lines.Add('Direccion origen: '+ PostMessage.FromAddress);
// Dirección destino. Se pueden indicar varias ( TStringList ) ...
PostMessage.ToAddress.Add(WDIRDEST);
Memo1.Lines.Add('Dirección destino: '+ PostMessage.ToAddress.Text);
// Titulo del mail ...
PostMessage.Subject:=WASUN;
Memo1.Lines.Add('Subject: '+ PostMessage.Subject);
// Ficheros adjuntos. Se pueden indicar varios ( TStringList ) ...
PostMessage.Attachments.Add('jdd.txt');
Memo1.Lines.Add('Ficheros adjuntos: ' + PostMessage.Attachments.Text);
// Cuerpo del mail ...
PostMessage.Body.Clear;
PostMessage.Body.Text:=WMEN;
Memo1.Lines.Add('Añadiendo cuerpo del mail ...');
// Enviando mail ...
Memo1.Lines.Add(' ');
Memo1.Lines.Add( 'Enviando ... ');
SendMail;
Memo1.Lines.Add('Mail enviado.');
// Desconectando ...
Disconnect;
Memo1.Lines.Add('Desconectado');
end;
end;

Para la llamada:

ENVIAR_CORREO(EHost.Text, StrToInt(EPort.Text), EDirOrigen.Text, EDirDest.Text, EAsunto.Text, EMen.Text);



REPITO, funciona para los emails de terra, pero no para msn, por ejemplo, que me muestra el error "503 No Recipients Especified"



Muchas gracias de nuevo, sois los mejores.
Ciao.

naker 29-11-2003 01:08:03

mmmm la verdad es q no sabria que decirte...
intentaste con otro host??
en HotPOP te ofrecen email gratuito. Yo tengo mi cuenta ahi, y con esa cuenta funciona sin problemas.
Intenta sacarte una cuenta ahi, y despues nos contas como te fue.
Saludos,
naker.-

Alejandra 01-12-2003 11:54:50

Hola Gente!!

queria compartir mi experiencia con smtp con ustedes.. no es mucha pero... tal vez sea de utilidad :)

haciendo un desarrollo me tope con una compania que utilizaba el Exchange como servidor de mail.
El tema es que ellos solo tenian habilitado el servicio de SMTP para uso interno , es decir solo mails de una determianda extension , por ejemplo @miCompania
Esta caracteristica es algo que se configura, es decir, tu proveedor puede decidir con quien/es podes contactarte via email

De acuerdo a lo uqe vengo siguiendo en los mensajes , es algo muy similar a lo uqe mu sucedio en este caso.

Saludos, y SUERTE!!!

Nadie 01-12-2003 14:55:42

yo hice algo con smtp pero con tidtcp (componente indy)mandando los comandos de telnet conectandose directamente al mx (mail exchange) y poniendo el mail que queria como sender, el mail no se enviaba, directamente se escribia en el servidor

bueno, si necestian algo de ayuda chiflen

ViPer 01-12-2003 19:11:46

Oye naker... hice lo que me dijiste, registre una cuenta nueva en HotPOP y cuando probe el programa puse Host:=smtp.hotpop.com y tal, conecto bien, como siempre, pero en el SendMail me da el error "554 error:no valid recipients"... lo mismo
ejecutaste el procedure que puse? funciona bien?

Respecto a lo que comenta alejandra, podria haber dicho como se puede modificar esa configuracion, supongo que habra que ponerse en contacto con el servidor...

Un saludo.

Nadie 01-12-2003 19:43:37

http://www.greenend.org.uk/rjk/2000/...p-replies.html
ese error te lo tira despues del data cuando pusiste mal la sintaxis del mail, aca te copio un ejemplo hecho con telnet en yahoo
Cita:

data
354 go ahead
subject: probando
to:error
from:nose
holaaaaaaaa
.
554 delivery error: dd This user doesn't have a yahoo.com.ar account (miranda@ya
hoo.com.ar) [-5] - mta112.mail.scd.yahoo.com
si te fijas en el to y en el from puse palabras que no son mail y el error lo tira porque no es un email valido, es el header del email

ViPer 02-12-2003 18:47:27

Siento parecer pesado, pero he comprobado lo de las direcciones TO y FROM y sigue igual. ¿Alguien ha ejecutado mi codigo?

FUNCIONA cuando:
Host: mailhost.terra.es
Direcc Dest: @terra

NO FUNCIONA cuando:
Host: mailhost.terra.es
Direcc Dest: @msn

y TAMPOCO FUNCIONA cuando:
Host: cualquiera que no sea terra! (smtp.HotPOP.com)

Es muy extraño, debe de ser algo de la configuracion del servidor, como comento Alejandra.

Gracias por la ayuda. Un saludo

Nadie 02-12-2003 20:01:21

Es obvio que te pasa eso porque no es openrelay, se puede hacer igual con un truquito medio tonto, pero no voy a escribirlo porque esto se puede usar para spam, no se si es tu caso


La franja horaria es GMT +2. Ahora son las 04:32:01.

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