FTP | CCD | Buscar | Trucos | Trabajo | Foros |
#1
|
|||
|
|||
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 |
#2
|
|||
|
|||
fijate en las demos que trae el delphi.
Saludos Alejandra |
#3
|
||||
|
||||
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.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#4
|
|||
|
|||
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 |
#5
|
||||
|
||||
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.
__________________
Todos somos aficionados. La vida es tan corta que no da para más. Guia de Estilos |
#6
|
||||
|
||||
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.- |
#7
|
||||
|
||||
En mi mensaje anterior está la dirección...
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#8
|
||||
|
||||
no, pero yo me referia al componente TNMSMTP
|
#9
|
|||
|
|||
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. |
#10
|
||||
|
||||
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.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#11
|
|||
|
|||
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. |
#12
|
||||
|
||||
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.- |
#13
|
|||
|
|||
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. |
#14
|
||||
|
||||
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.- |
#15
|
|||
|
|||
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!!! |
#16
|
|||
|
|||
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
__________________
comemos.com.ar, todo el delivery de Capital Federal en un solo lugar |
#17
|
|||
|
|||
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. |
#18
|
|||
|
|||
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:
__________________
comemos.com.ar, todo el delivery de Capital Federal en un solo lugar |
#19
|
|||
|
|||
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 |
#20
|
|||
|
|||
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
__________________
comemos.com.ar, todo el delivery de Capital Federal en un solo lugar |
|
|
|