¿Cuál es la mejor manera de darle al usuario actualizaciones semanales de su programa?

StackOverflow https://stackoverflow.com/questions/252119

  •  05-07-2019
  •  | 
  •  

Pregunta

Tengo un programa que, en su mayor parte, funciona en segundo plano. Digamos que DoesWork (). Una vez por semana, quiero que notifique al usuario sobre algunos de los trabajos que ha realizado en los últimos días. Será un informe de estado básico, con una lista de algunos archivos que se han descargado.

Inicialmente, quería enviar esta actualización de estado por correo electrónico, así que lo he investigado, pero hay muchos problemas. Necesito un servidor SMTP, así que miré GMail. Está bien, pero tiene un límite diario de 500 correos electrónicos, por lo que no sería adecuado para el lanzamiento. Además, habría problemas con la misma contraseña de cuenta de correo electrónico que se entrega en cada copia del programa, lo que, según tengo entendido, es un riesgo, incluso si la contraseña se almacena mediante cifrado.

Entonces pensé que tal vez podría usar la cuenta de correo electrónico del usuario para enviarme un correo electrónico. Esto también tiene un par de complicaciones: el usuario deberá especificar toda la información de smtp para su cuenta de correo electrónico, que es demasiado complicada para el usuario objetivo. Además, no quiero que las personas ingresen la contraseña de su cuenta de correo electrónico en mi programa solo para enviar correos electrónicos. No creo que sea un buen hábito para promover.

¿Hay alguna manera de que pueda hacer esto por correo electrónico? El correo electrónico fue mi primera opción porque es un sistema de notificación que los usuarios ya estarán revisando. Es bastante no intrusivo.

¿Es necesario configurar mi propio servidor smtp? Si es así, ¿cómo puedo hacer eso?

Si el correo electrónico es un no-go, también estaba pensando en solo generar un archivo HTML local con la información relevante, y luego tener una notificación emergente del programa una vez por semana para informar al usuario que un nuevo informe de actualización está listo . Creo que esto es totalmente factible, es demasiado intrusivo y no es mi primera opción. Quiero realizar un piggyback en un sistema que el usuario ya está utilizando.

Gracias! -greg

¿Fue útil?

Solución

Una alternativa es hacer que el programa genere una fuente RSS y dirija al usuario cómo suscribirse. Además, una vez que se genere una nueva actualización, muestre el brindis de actualización durante aproximadamente un minuto, luego escóndalo automáticamente y cambie el icono de su bandeja del sistema a algo diferente. En aproximadamente un día, vuelva a cambiarlo al icono original. Además, asigne al usuario una configuración para desactivar el tostado de forma permanente.

Confiar en el correo electrónico no es una buena idea, ya que tendría que recopilar los correos electrónicos del usuario y lidiar con los problemas de privacidad para eso, estaría dosificando efectivamente cualquier servidor SMTP de terceros o tendría que invertir en la infraestructura para su propio.

Otros consejos

Si lo he entendido correctamente, el usuario está ejecutando este programa en su PC, en segundo plano.

La forma perfecta de notificar algo sería, en mi humilde opinión, si se reduce al mínimo el programa a la barra de bandeja, una pequeña ventana emergente que hizo clic abrirá una ventana con un informe semanal.

Espero que esto ayude.

Si logra que especifiquen su propio servidor smtp, asegúrese de poner un " Enviar correo electrónico de prueba " botón en allí para que puedan probarlo. Sé por experiencia que los usuarios siempre ingresan los detalles incorrectos cuando especifican un servidor smtp, nombre de usuario, contraseña, lo que se agrava ya que algunos servidores smtp requieren un nombre de usuario / contraseña y otros no.

Si ingresan los detalles incorrectos (o si cambian), es posible que tenga que tener alguna forma de enviarles informes más antiguos, o tener alguna otra forma de notificarles que no puede enviar correos electrónicos.

El correo electrónico es genial, pero es posible que también necesites un método alternativo.

Google para ventanas de servidor smtp simple le ofrece esto

Para ser honesto, si solo envías mensajes una vez a la semana, tu correo electrónico es tu mejor opción, ya que no es lo suficientemente frecuente como para garantizar que el usuario estará en su máquina para aceptar algún otro tipo de solicitud, lo que requeriría que escribieras software propietario.

Alternativamente, podría publicarlo en un canal de irc o escribir un bot de MSN para enviar un mensaje al usuario, el mensaje se enviaría como un mensaje fuera de línea si el usuario estaba fuera de línea.

Todavía iría por correo electrónico, se ha probado y probado.

Para un servidor SMTP simple, uso hmail . Lo configuro para aceptar todas las solicitudes SMTP de la máquina local, independientemente de la fuente y el destino, y para rechazar cualquier solicitud SMTP que no provenga de localhost. Esto estará bien si tienes una aplicación ubicada centralmente.

Si desea distribuir la aplicación, tiene una situación completamente diferente; con una gran cantidad de ISP que imponen restricciones al tráfico SMTP, su mejor opción sería permitir que los usuarios ingresen los detalles de su cuenta de correo y luego usarlos para enviar correo. Esto asegurará que todos puedan poner en configuración de trabajo. Luego, use la biblioteca o el código prefabricado para el idioma yoru de su elección para enviar un correo electrónico con esa configuración.

¿Tiene que ser un resumen semanal? En su lugar, ¿qué le parece usar Growl (o equivalente) para notificar al usuario las tareas que se realizan en tiempo real, en el fondo?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top