Cómo seleccionar la direccion de envío cuando tengo más de una dirección de Internet
Daniel Recio  Septiembre 28 2010
Daniel Recio  Septiembre 28 2010

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

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