Pido disculpas de antemano ya que esta será una larga pregunta. Espero que alguien con conocimientos de Applescript pueda ayudarme. Estoy transfiriendo todas mis máquinas Windows a Apple y estoy atrapado con una última cosa molesta. Dentro de Outlook tenía un macro que me preguntaba dónde guardar un correo después de enviarlo. Estoy acostumbrado a archivar proyectos en carpetas separadas y tener el correo entrante y saliente juntos allí. La mayoría de los elementos que envío, por cierto, van a la carpeta de basura. En otras palabras, mi carpeta de elementos enviados siempre está vacía.
Para fines de referencia adjunto el macro original a continuación.
Intenté hacer esto a través de reglas pero ahora entiendo que Mail no admite reglas en los elementos enviados. Luego terminé usando Automator y Applescript. He encontrado algunos ejemplos en internet que mueven correos seleccionados a una carpeta específica predeterminada. Sin embargo, eso no es lo que necesito, necesito que el script me pregunte cada vez qué carpeta usar.
Lo siguiente que no puedo encontrar es algún tipo de activador automático cuando envío un correo. Sería posible, por ejemplo, a través de una opción "cuando un correo se guarda en correos enviados". O algo similar. Lo siguiente mejor es simplemente un atajo de teclado que inicie el macro, aunque esto se acerca mucho a hacerlo manualmente moviendo simplemente el correo enviado a una carpeta específica.
De todos modos, espero que mi pregunta sea clara y que algún gurú inteligente de Applescript entre ustedes tenga una manera de lidiar con esto.
¡Gracias de antemano!
Arnoud
COPIA DE MI CÓDIGO VBA ORIGINAL USADO EN LA CONFIGURACIÓN DE OUTLOOK PARA WINDOWS
Dim objFolder As MAPIFolder
' Declaración de variables
Dim objNS As NameSpace
Dim colKeywords As New Collection
Dim vntRecipients As Variant
Dim bolExternalEmail As Boolean
' Establecer variables
Set objNS = Application.GetNamespace("MAPI")
' Configurar lista de palabras clave que usas al adjuntar archivos
colKeywords.Add "attachement"
colKeywords.Add "Attachement"
colKeywords.Add "attached"
colKeywords.Add "Attached"
' Verificar palabras clave de adjuntos y verificar número de adjuntos
If checkForKeywords(colKeywords, Item.Body) And (Item.Attachments.Count = 0) Then
' Si los adjuntos deben estar en el correo electrónico, preguntar si se desea continuar
If MsgBox("Adjunto faltante. ¿Enviar correo electrónico de todos modos?", vbYesNo) = vbNo Then
Cancel = True
Exit Sub
End If
End If
' Verificar el asunto
If Item.Subject = "" Then
MsgBox "Por favor especifica un asunto"
Cancel = True
Exit Sub
End If
' Solo habilitar acciones para correos electrónicos
If Item.Class = olMail Then
' Obtener carpeta para guardar el correo
Set objFolder = objNS.PickFolder
' Verificar si se ha especificado una carpeta
If TypeName(objFolder) <> "Nothing" Then
' Si se ha especificado una carpeta, mover el correo
Set Item.SaveSentMessageFolder = objFolder
Else
' De lo contrario, no enviar el correo y volver al correo
Cancel = True
End If
End If
send_message:
' Deshacer todo
Set objFolder = Nothing
Set objNS = Nothing
End Sub