Foros Club Delphi

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

chucoptero 14-04-2004 18:30:24

smtp con lotus
 
Estoy intentando enviar un correo electronico con delphi6, tengo un servidor de correo lotus note y no he podido enviar ningun curreo, a ver si alguien me puede echar una alludita porfavor, hos adjunto el codigo para q me digais los errores q he cometido. Muchas gracias

/*********************************************************/
try
smtp.Connect;//smtp es de tipo idSMTP
try
smtp.Send(mensage);//mensage es de tipo idMessage
finally
smtp.Disconnect;
end;
ShowMessage('Enviado correctamente');
finally
ShowMessage('error con la conexion');
end;
if smtp.Connected then smtp.Disconnect;
/********************************************************/

anteriormente ya he puesto mi servidor de correo, mi nombre de usuario y mi contraseña.
Estoy empezando con el delphi a si q si no es mucha molestia esplicarmelo todo bastante, gracias.

jachguate 14-04-2004 18:45:03

hola. Bienvenido a los foros.

Te recomiendo que aprendas a usar la etiqueta code con la que tus trozos de código quedarán indentados y mucho mas legibles. Además te invito a la lectura de la guia de estilo de los foros.

no entiendo porque metes todo en dos bloques try/finally, y mucho menos porque mostras un mensaje de error en el segundo finally (donde siempre pasará, haya o no haya error).

Quitá este bloque mas externo, y decinos cual es el mensaje de error que te aparece y quizas podamos ayudarte.

Hasta luego.

;)

tcp_ip_es 14-04-2004 18:45:12

Existe una librería de acceso nativo a Notes, que funciona bastante bien para envios, recepción de mensajes se llama Domino_TLB si quieres te la mando y luego te explico como se utilizan los métodos de la misma.

Saludos, Tony.

Nota: Ahora mismo salgo del trabajo asi que hasta mañana no te la podré mandar.....

chucoptero 14-04-2004 19:03:14

error
 
Perdon por mi ignorancia pero es la primera vez q toco delphi y me mandan hacer este programa y voy un poco pez en este lenguaje

el error q me ha dado es

Código:

Project Project1.exe raised exception class EIdSocketError with  message 'socket Error #1101'. Process stopped. Use Step or Run to continue
gracias por contestarme tan pronto

jachguate 14-04-2004 20:44:26

Hola. No creo que exista el error #1101. Si el error es el #11001, simplemente el host al que estas tratando de conectarte no existe (lo cual debiera aparecer también en el mensaje, probablemente en inglés).

Hasta luego.

;)

chucoptero 15-04-2004 08:30:28

Creo q puede ser por la libreria q no me da acceso al servidor de correo
tcp_ip_es me harias un favor si me pasases la libreria del lotus y si puedes me la puedes explicar un poco,

tcp_ip_es 15-04-2004 09:46:25

por eso te decía que si la querías que me dieses tu dirección de correo, porque con el correo de los foros no encuentro la manera de enviar anexos..... dime tu email y te mando la librería y algunos ejemplillos....

Saludos, Tony

chucoptero 15-04-2004 09:50:46

mi direccion es chucoptero@pobladores.com
perdona pero es q estoy un poco pez en esto de los foros es la primera vez q entro

tcp_ip_es 15-04-2004 10:56:26

ya te he enviado la libreria y los ejemplos. Me ha dado problemillas el correo al enviar confirmame si te ha llegado bien.

Saludos, Tony

tcp_ip_es 15-04-2004 11:00:50

Acabo de recibir en mi correo una notificación diciendome que tienes el correo lleno, asi que como no lo vacies no se como te lo voy a enviar.... :confused: :p

chucoptero 15-04-2004 11:09:39

Muchas gracias acabo de recibir los archivos voy a probarlos y te cuento, lo he vaciado si quieres puedes enviarme la ayuda, gracias y perdona por el tiempo q estas perdiendo ayudandome

tcp_ip_es 15-04-2004 11:13:22

Ya te he enviado el último archivo :p , si tienes alguna duda ya sabes

Saludos, Tony

chucoptero 15-04-2004 12:14:08

Lo siento pero no lo entiendo mucho, ya he dicho q hera nobato en delphi y más aun en este campo si puedes explicamelo un poco, Porfavor

tcp_ip_es 16-04-2004 11:10:29

Concreta un poco más tus dudas ;) , de todas formas te he enviado un correo comentandote un poco uno de los ejemplos.....


Saludos, Tony.

chucoptero 16-04-2004 11:46:29

Gracias por todo, estoy empezando a entender el codigo. Lo q me has dicho de instalar el domino_lt en el ordenador q voy ha utilizar el programa es solo poner la libreria q me has pasado no, gracias

tcp_ip_es 16-04-2004 11:58:27

No. Me refiero a que tienes que tener instalado el cliente de Lotus Notes de Correo. Vamos yo no lo he intentado probar sin él. Pero de algun sitio tiene que coger las definiciones de tu base de datos de correo, y el servidor en el que esta, y la ubicación de tu archivo .id. Tienes instalado el cliente notes en tu ordenador???

Saludos, Tony

chucoptero 16-04-2004 12:03:43

Si, lo tengo instalado, hace falt algo mas

tcp_ip_es 16-04-2004 12:21:44

Nada más ... simplemente incluir la librería domino_tlb.pas c:\archivos de programa\borland\delphiX\lib

bueno ya llevarás algo avanzado no ;)

Saludos, Tony

chucoptero 16-04-2004 13:15:56

Código:

f_View := f_MailDatabase.GetView('enviados');
En esta linea abrimos la carpeta enviados, no.
Se puede abrir la carpeta donde se guardan todo el listado de direcciones de correo

tcp_ip_es 16-04-2004 13:46:14

Si esa sería la carpeta de enviados, y en cuanto a la libreta de direcciones te mandé un ejemplo que hace exactamente eso. Has podido acceder ya a tu correo????

Saludos, Tony

chucoptero 16-04-2004 15:59:19

Si, perdona no me habia dado cuenta, creo q he terminado de entender el codigo y voy a empezar a implementarlo, muchas gracias por todo y ya te cuento.

Hasta luego

chucoptero 16-04-2004 16:51:21

El componente Domino_TLB no me lo reconoce como un componente, yo solo lo he pegado en la carpeta lib y luego lo he puesto en los uses de mi programa

tcp_ip_es 17-04-2004 12:55:30

Con eso te vale simplemente, deja la librería en ese directorio y a partir de ahi a funcionar.... ;)

chucoptero 20-04-2004 11:28:29

Si q me funciona por ahora, muchas gracias por todo, si me surge algo te pregunto vale

tcp_ip_es 20-04-2004 16:36:01

Ok... cuando quieras..... ya me invitarás algún día a un copazo :cool:

chucoptero 20-04-2004 18:21:28

Una pequeña duda, creo un .pas, me funciona correctamente y si cierro el delphi y lo vuelvo abrir el .pas deja de funcionar

tcp_ip_es 20-04-2004 18:33:59

No entiendo tu pregunta :confused: una vez que compilas y no te genera error y luego grabas, no se porque motivo va a dejarte de funcionar que error te da??? dime algo más claro....

chucoptero 20-04-2004 18:39:27

no me da ningun error lo unico q pasa es q no me ejecuta el codigo, vamos q empieza a ejecutarlo y derrepente se cierra

tcp_ip_es 20-04-2004 18:53:56

:confused: ahi me has pillado no tengo ni idea de lo que te puede pasar, debe ser del propio compilador .....

chucoptero 21-04-2004 10:54:29

da igual ire haciendolo cada vez, una cosa porque si pongo
Cita:

str:= str + Doc.GetItemValue('InternetAddress')[0];
no me sale la direccion de correo del usuario.
Es del ejemplo q me mandaste para saber todos las personas q tengo en mi agenda

tcp_ip_es 21-04-2004 18:45:43

Siento el retraso es que hoy me he metido en el foro a eso de las 9:30 y luego ya no me he metido hasta ahora. Vamos a ver tienes varias soluciones para sacar la direccion email de un documento notes (notesdocument). Supongo que el ejemplo sería sobre la 4.6, no me acuerdo la verdad, pero se que con el siguiente código funciona :

Código:

str := str + doc.getitemvalue('SMTPOriginator')[0];
con ese campo lo que conseguimos es la dirección internet de un correo que no este dado de alta en nuestro servidor notes.

Con el siguiente código conseguimos la dirección internet del usuario notes al que se refiera el documento

Código:

str := str + doc.GetItemValue('INetFrom')[0];
De todas formas para saber a que campos puedes acceder mediante el método getitemvalue puedes, desde el propio cliente notes, pinchar sobre cualquier documento con el botón derecho y ver sus propiedades, y en la pestaña campos podrás ver todos los campos accesibles.

Saludos, Tony . Ya sabes si tienes alguna duda no dudes que ponermela por aqui..... ;)

chucoptero 22-04-2004 09:04:27

Lo siento pero no me funciona ninguno de los 2 y lo del lotus no me sale ninguna variable de este tipo, ni por el estilo.

tcp_ip_es 22-04-2004 09:50:00

Los campos a los que me refería en el anterior post hacen referencia a un documento tipo correo (vamos los que te llegan a tu bandeja de entrada). Si lo que quieres es sacar la lista de direcciones de correo de tu lista de contactos el campo referente a la dirección email de cada contacto es InternetAddress. Como te dije en el anterior post si pinchas con el boton derecho sobre un contacto (en notes), y entras en propiedades del documento, te saldrá un cuadro de dialogo en el que le deberás pinchar en la pestaña campos (no viene escrito campos como tal, viene una especie de escuadra pequeñita) para ver todos los campos de ese documento, uno de ellos es InternetAddress. No se me ocurre otra cosa :confused: , a no se de que la versión de notes que tengas tu sea diferente a la mía y ese campo no lo incluya o se haya cambiado de nombre. Yo tengo Lotus Notes R5.

Saludos, Tony

chucoptero 22-04-2004 09:53:32

Si q lo incluye, pero yo no tengo la lista de mis contactos guardada en mi ordenador si no q accedo al servidor cada vez para verla, puede ser por eso q no me salen las direcciones de correo

tcp_ip_es 22-04-2004 10:19:28

eso si que es raro :D la lista de contactos de los clientes notes suelen estar en local, en la base de datos que se llama names.nsf,(C:\Lotus\Notes\data\names.nsf), tendrías que abrir esa base de datos, tanto si esta en local como en un servidor.
Código:

Sesiondenotes.GetDatabase('','basededatos.nsf',false);
Saludos, Tony

chucoptero 22-04-2004 11:19:05

e mirado dentro de ese fichero y esta vacio, no tiene ninguna dirección de correo y tampoco ninguna persona

tcp_ip_es 22-04-2004 16:04:34

vamos a ver, desde tu area de trabajo de notes pincha boton derecho sobre el icono de la base de datos de tus contactos y mira en sus propiedades su nombre y ubicación (sera algo como : Servidor/directorio/names.nsf). Una vez que la tengas utiliza el código que te he dado antes para abrir tu sesión:

Código:

Sesiondenotes.GetDatabase('','Servidor/directorio/names.nsf',false);
Digo yo que de algun servidor estarás cogiendo la base de datos no??? . Bueno a ver si esta vez conectas con tus contactos :D


Saludos, Tony. Seguimos en contacto

chucoptero 23-04-2004 13:31:27

Ya se xq falla es porque no tenemos cuentas de correo saliente, tenemos una direccion interna, y ya he podido sacarla, gracias por todo. Ahora empezare a preguntarte lo de enviar un correo electonico.
Cita:

f_LotusMailItem:= f_MailDatabase.CreateDocument;
Cuando introduzco esta linea me dice q acceso violado
q puede ser

tcp_ip_es 26-04-2004 09:35:18

Buenas, los fines de semana no me suelo meter en el foro, vamos a ver aqui te dejo una rutinita que envia correo (incluye el tema de anexos).

Código:

procedure TFCorreo.FlatButton1Click(Sender: TObject);
var a,d,i,x:integer;
 ol:olevariant;

begin
for d:=0 to Destinatario.Lines.count -1 do // envio un correo por cada direc.
begin
// todas las variables a nil para no tener problemas con Access Violation ;)
  mailitem:=nil;
  notesitem1:=nil;
  notesitem2:=nil;
  notesrichItem:=nil;
  notesrtStyle:=nil;

 mailitem:=Ndb.createdocument;
 try
  try
 
  NotesItem1:=mailitem.ReplaceItemValue('sendTo',Destinatario.Lines[d]);
  NotesItem2:=mailitem.ReplaceItemValue('Subject', Asunto.text);
  notesrichitem:= mailitem.CreateRichTextItem('Body');
  notesRtStyle:=Ns.CreateRichTextStyle;
  notesrichitem.appendstyle(notesRtStyle);
  notesrichitem.appendtext(Cuerpo.text);
  for a:=0 to Anexos.lines.count -1 do
  begin
  notesrichitem.AddNewLine(2,false);
  notesrichitem.EmbedObject(EMBED_ATTACHMENT,'',Anexos.lines[a], 'EmbedObject');

  end;
  recipients:='';
  mailitem.Set_SaveMessageOnSend(true);
  mailitem.Send(false,recipients);


  except
  on E:Exception do
    MessageDlg('Error al enviar el mensaje, mtError, [mbOK],0);
  end;
  finally

  mailitem:=nil;
  notesitem1:=nil;
  notesitem2:=nil;
  notesrichItem:=nil;
  notesrtStyle:=nil;

  end;
end;
showmessage('El Mensaje se ha enviado con éxito');
end;

En principio tu instrucción es correcta, pero como no se en que contexto del programa esta te envío el código y asi es más fácil.....

Saludos, Tony .....seguimos en contacto

chucoptero 18-05-2004 10:05:05

Perdona por no haberte contestado antes pero me habian cambiado la faena y no he podido ver nada más, pero he vuelto, eres el puto amo me funciona perfectamente, ya puedo enviar correos automáticos, pero me falta una ultima duda a ver si me la puedes solucionar.

Como puedo enviar un correo anonimo, que no aparezca mi nombre si no otro


La franja horaria es GMT +2. Ahora son las 20:17:21.

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