Daniel Recio  Septiembre 28 2010


Septiembre 28 2010  Daniel Recio

Bueno, esto es una de las cosas que siempre nos hemos preguntado, ¿Por qué no puedo escoger la dirección de envío de un correo cuando tengo asignada más de una dirección de Internet? El tema es, principalmente, porque el campo remitente lo cogemos de la ubicación del usuario, y el proceso de envío pone el valor de la ubicación en el último momento.

Las posibles soluciones son:

Solución 1 SCRIPT


Un script que coloque el correo directamente en el mail.box,y ahí le pongo el campo necesario. De esta manera no hago un envío nativo, sino que creo un correo en el mail.box del servidor.

Solución 2 Gestión de Ubicaciones


Otra solución, es crearle al usuario distintas ubicaciones cada una de ellas con la dirección de Internet correspondiente. Y “educar” al usuario para que cambie de gorra (ubicación) cuando quiere mandar un correo con una u otra dirección de Internet.

Solución ESLUG (3)




Crearemos un campo que nos diga el UNID del documento de Ubicación que está usando el usuario, este campo lo llamaremos LOCATIONID y tendrá como valor la siguiente fórmula

@Text(@LocationGetInfo([UNID]))



Crearemos un campo desplegable en el formulario MEMO (más tarde lo podemos crear en el REPLY, etc) que haga lo siguiente.

1 . Busque en el names.nsf cuántas y cuáles son las direcciones de correo del usuario y se las muestre en el desplegable.
2 . Que tenga como valor por defecto la dirección que hay en la ubicación en ese momento
3 . Que al seleccionar la dirección que quiere utilizar se actualice el valor en la ubicación y por lo tanto en el envío

Image:Cómo seleccionar la direccion de envío cuando tengo más de una dirección de Internet


El valor por defecto de este campo sería @LocationGetInfo([InternetMailAddress])

En la lista de valores posibles del comboboxcolocaremos la siguiente fórmula:

lista:=@Unique(@DbLookup("":"NOCACHE";@Subset(@MailDbName;1):"names.nsf";"($Users)";@UserName;"fullname"):

@DbLookup("":"NOCACHE";@Subset(@MailDbName;1):"names.nsf";"($Users)";@UserName;"internetaddress"));

temp := "";

@For(n := 1; n <= @Elements(lista); n := n + 1;

@If(@Contains(lista[n];"@");temp := temp:lista[n];temp:=temp));

@Sort(@Trim(temp))


Que básicamente lo que hace es buscar al usuario en el names.nsf del servidor, extraer la lista de valores del fullname+internetaddress, limpiarla para coger sólo los valores con @ y ordenarla.

Ahora en el Evento Onchange de ese campo pondremos el script que modifica la ubicación del usuario

Sub Onchange(Source As Field)

  Dim dbnames As NotesDatabase

  Dim doclocation As NotesDocument

  Dim s As New notessession

  Set dbnames=s.GetDatabase("","names.nsf")

  Dim unid As String

  Dim workspace As New NotesUIWorkspace

  Dim uidoc As NotesUIDocument

  Set uidoc = workspace.CurrentDocument

      unid=uidoc.FieldGetText( "locationID" )

  Set doclocation=dbnames.GetDocumentByUNID(unid)

  doclocation.imailaddress=uidoc.FieldGetText( "remitente" )

  Call doclocation.Save(True,False)

  Call workspace.EditDocument(True, doclocation)

  Dim uidoc2 As NotesUIDocument

  Set uidoc2 = workspace.CurrentDocument

  Call uidoc2.Reload

  Call uidoc2.Save

  Call uidoc2.Close(True)

End Sub



Con todo esto cuando vayamos a mandar un correo podremos ver con qué dirección se está enviando y podré cambiarla al gusto. Podríamos mejorarlo, ocultando este campo si la lista de direcciones no es mayor que 1, etc. Pero eso será en otra ocasión.

Ni que decir tiene que esto no está soportado oficialmente, que solo funciona para NOTES y que aquel que lo implemente lo hace bajo su propio riesgo.


A continuación se detalla más información sobre las fórmulas no documentadas que utilizamos para sacar valores de la ubicación.

http://www-01.ibm.com/support/docview.wss?rs=0&uid=swg21094302

http://planetlotus.org/profiles/assonos-blog_55702

Saludos

Lotus Notes

6 Comentarios 
1
Danisoft
10/9/2010 12:48:25 AM

Releyendo tu comentario, no entiendo muy bien esto "Es triste tener que guardar algo de un post en un blog cuando tengo claro que no es algo a tener colgado así. Tendría que estar en un tutorial profundamente detallado para gente como yo."

Se me ocurre que expongas sin miedo todas tus dudas de newbie en el foro y me apuesto lo que quieras a que todas tendran respuesta.

En mi opinion, mucha gente mira y toma nota, pero no se atreve a preguntar, no se por que. Hoy hemos resuelto un tema chulo en el foro y alguien se ha ido contento.

Y a lo mejor de ahi con todo eso , pues hacemos un tutorial....

2
Danisoft
10/9/2010 12:42:53 AM

Hola Fran, conteste al email de tu pregunta pero no he recibido respuesta, ya me diras que necesitas, si quieres puedes ponerlo en el foro o mandarme un correo a dani@pixelout.com .

3
Fran
10/8/2010 11:13:56 PM

Dios te lo pague.

Una de las cosas que los que domináis no os dáis cuenta es de que los newbies en Lotus no tenemos herramientas para amar el producto. Cuando coges Access, por ejemplo, MS tiene un portal entero de ejemplos, fotos, tutoriales y demás para enseñarte. En Lotus tenemos la fea web de IBM llena de gente que al dominar, habla de Tivoli y de tráfico.

Pero yo sólo quiero enviar un correo desde una dirección.

Es triste tener que guardar algo de un post en un blog cuando tengo claro que no es algo a tener colgado así. Tendría que estar en un tutorial profundamente detallado para gente como yo.

Y CONSTE, estoy esperando a que me respondáis cómo contactar con Daniel Recio para que me ayude a poner esto sin cargarme el template de eproductivity, y le he puesto que le invito a algo con Paypal. O sea, quien diga que los newbies estamos de adorno, miente.

4
Albert Buendía
9/28/2010 6:10:35 PM

Muy buen artículo. Estoy seguro que más de uno le va a sacar provecho.

5
Danisoft
9/28/2010 7:13:12 PM

Estaria bien que luego lo pusiera aqui o en el foro

6
Danisoft
9/28/2010 5:51:47 PM

Por cierto, esto funciona desde la version 5, o anterior

Comentarios

Cómo seleccionar la direccion de envío cuando tengo más de una dirección de Internet