Как лучше всего предоставлять пользователю еженедельные обновления вашей программы?

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

  •  05-07-2019
  •  | 
  •  

Вопрос

У меня есть программа, которая по большей части работает в фоновом режиме.Допустим, это DoesWork().Я хочу, чтобы раз в неделю он уведомлял пользователя о некоторой работе, выполненной за последние несколько дней.Это будет базовый отчет о состоянии, в котором будут перечислены некоторые загруженные файлы.

Изначально я хотел отправить это обновление статуса по электронной почте, поэтому я изучил этот вопрос, но возникло много проблем.Мне нужен SMTP-сервер, поэтому я посмотрел на GMail.Это нормально, но у него есть ежедневный лимит в 500 писем, поэтому его нельзя выпускать.Кроме того, могут возникнуть проблемы с тем, что в каждой копии программы будет указан один и тот же пароль учетной записи электронной почты, что, насколько я понимаю, представляет собой риск, даже если пароль хранится с использованием шифрования.

Затем я подумал, что, возможно, я мог бы использовать собственную учетную запись электронной почты пользователя, чтобы отправлять электронную почту самому себе.Это также имеет несколько сложностей:пользователю необходимо будет указать всю информацию smtp для своей учетной записи электронной почты, что слишком сложно для целевого пользователя.Кроме того, я не хочу, чтобы люди вводили пароль своей учетной записи электронной почты в мою программу только для отправки электронных писем.Я не думаю, что это хорошая привычка для продвижения.

Могу ли я как-нибудь сделать это по электронной почте?Электронная почта была моим первым выбором, потому что это система уведомлений, которую пользователи уже будут проверять.Это довольно ненавязчиво.

Необходимо ли настраивать собственный smtp-сервер?Если да, то как я могу это сделать?

Если электронная почта бесполезна, я также подумал о том, чтобы просто создать локальный HTML-файл с соответствующей информацией, а затем раз в неделю открывать всплывающее уведомление из программы, чтобы информировать пользователя о том, что новый отчет об обновлении готов.Я думаю, что это вполне выполнимо, просто это слишком навязчиво и не мой лучший выбор.Я хочу использовать систему, которую пользователь уже использует.

Спасибо!-грег

Это было полезно?

Решение

Альтернативный вариант — заставить программу генерировать RSS-канал и указывать пользователю, как на него подписаться.Кроме того, после создания нового обновления покажите всплывающее уведомление об обновлении примерно на минуту, затем автоматически скройте его и измените значок на панели задач на другой.Примерно через день измените его на исходный значок.Кроме того, дайте пользователю возможность навсегда отключить тост.

Полагаться на электронную почту — не лучшая идея, так как вам придется собирать электронные письма пользователей и решать проблемы конфиденциальности для этого, вы фактически будете DOSировать любой сторонний SMTP-сервер или вам придется инвестировать в собственную инфраструктуру.

Другие советы

Если я правильно понял, пользователь запускает эту программу на своем компьютере в фоновом режиме.

Идеальным способом о чем-то уведомить было бы, ИМХО, свернуть программу в трей, небольшое всплывающее окно, по щелчку которого открывалось бы окно с еженедельным отчетом.

Надеюсь это поможет.

Если вы попросите их указать свой собственный smtp-сервер, обязательно поместите туда кнопку «Отправить тестовое письмо», чтобы они могли его протестировать.По опыту я знаю, что пользователи всегда вводят неправильные данные при указании smtp-сервера, имени пользователя и пароля, что усугубляется тем, что некоторые smtp-серверы требуют имя пользователя и пароль, а другие — нет.

Если они введут неправильные данные (или они изменятся), возможно, вам потребуется какой-то способ отправить им более старые отчеты или какой-то другой способ уведомить их о том, что вы не можете отправлять электронную почту.

Электронная почта — это здорово, но вам может понадобиться и альтернативный метод.

Google для простых окон SMTP-сервера дает вам этот

Честно говоря, если вы просто отправляете что-то раз в неделю, лучше всего подойдет электронная почта, поскольку этого недостаточно, чтобы гарантировать, что пользователь будет у своей машины, чтобы принять какой-то другой запрос, который потребует от вас написания проприетарного программного обеспечения.

В качестве альтернативы вы можете опубликовать его на канале IRC или написать бот MSN для сообщения пользователю; сообщение будет отправлено как автономное сообщение, если пользователь не в сети.

Я бы все равно выбрал электронную почту, она опробована и проверена.

Для простого SMTP-сервера я использую электронная почта.Я настраиваю его так, чтобы он принимал все SMTP-запросы с локального компьютера, независимо от источника и места назначения, и отклонял любые SMTP-запросы, не поступающие с локального хоста.Это будет хорошо, если у вас есть централизованное приложение.

Если вы хотите распространять приложение, у вас совершенно другая ситуация;Поскольку многие интернет-провайдеры устанавливают ограничения на SMTP-трафик, лучшим вариантом было бы разрешить пользователям вводить данные своей почтовой учетной записи, а затем использовать их для отправки почты.Это гарантирует, что каждый сможет установить рабочие настройки.Затем используйте любую существующую библиотеку или готовый код для выбранного вами языка, чтобы отправить электронное письмо с этими настройками.

Должен ли это быть еженедельный дайджест?Вместо этого, как насчет использования Рычать (или эквивалент), чтобы уведомлять пользователя о выполняемых задачах в режиме реального времени, в фоновом режиме?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top