5

当有未读电子邮件时,我正在寻找使整个屏幕闪烁红色或任何颜色的任何方法。它可能适用于任何电子邮件客户端。我做了很多谷歌搜索,找不到任何东西。雷鸟有一个插件可以创建一个小闪烁通知,但它只在屏幕的右下角显得非常小。

我在考虑可能会在 Firefox 或 Chrome 上添加一些插件,这样我就可以编写自定义 css 和 javascript 来在 Gmail 上运行并实现闪烁。任何想法都非常感谢。

我知道这不是你经常问的问题,但你们都很棒,我不知道还能去哪里。如果有更好的论坛来解决这类问题,你也可以告诉我。

谢谢!

4

4 回答 4

2

我在搜索时发现了这个程序,还没有尝试过。但它说它可以在电子邮件到达时执行外部程序。因此,您似乎可以编写一个小的 C# 应用程序,该应用程序可以执行您想要的任务并在新电子邮件到达时执行。

http://www.jsonline.nl/Content/Poppy/Poppy.htm

于 2013-03-22T05:51:18.503 回答
1

获取当前的 google 邮件检查器扩展示例 ( https://developer.chrome.com/extensions/samples.html )。将其转换为打包的应用程序(获取您想要的部分),打开一个非常大的窗口并快速关闭它。这应该够了吧。可悲的是全屏似乎是不可能的。但我不知道这是否有问题。

于 2013-03-16T17:03:36.430 回答
1

我不会制作 Chrome 插件,而是让窗口标题闪烁或使用 HTML5 通知。创建一个简单的页面来轮询您的 IMAP Gmail 以获取新邮件,并将 gmail 包含在一个大 iFrame 中。如果发现新消息,您的外部窗口可以发出通知。

HTML5 通知http ://www.html5rocks.com/en/tutorials/notifications/quick/

闪烁的标题(采用自此):

var newMailBlinker = (function () {
    var oldTitle = document.title,
        msg = 'New Mail!',
        timeoutId,
        blink = function() { 
            document.title = document.title == msg ? ' ' : msg; 
        },
        clear = function() {
            clearInterval(timeoutId);
            document.title = oldTitle;
            window.onmousemove = null;
            timeoutId = null;
        };

    return function () {
        if (!timeoutId) {
            timeoutId = setInterval(blink, 1000);
            window.onmousemove = clear;
        }
    };
}());

PHP Poll Gmail IMAP(从this采用):

$t1=time();//mark time in
$tt=$t1+(60*1);//total time = t1 + n seconds

do{
    if(isset($t2)) unset($t2);//clean it at every loop cicle
    $t2=time();//mark time
    if(imap_num_msg($imap)!=0){//if there is any message (in the inbox)

        $mc=imap_check($imap);//messages check
        //var_dump($mc); die;//vardump it to see all the data it is possible to get with imap_check() and them customize it for yourself
        echo 'New messages available';

    }else echo 'No new messagens';

    sleep(rand(7,13));//Give Google server a breack
    if(!@imap_ping($imap)){//if the connection is not up
        //start the imap connection the normal way like you did at first
    }

}while($tt>$t2);//if the total time was not achivied yet, get back to the beginning of the loop

jQuery AJAX 轮询到您的 IMAP 脚本(从此 采用

// make the AJAX request
function ajax_request() {
  $.ajax({
    url: '/path/to/gmail/imap/checkMessages.php',
    dataType: 'json',
    error: function(xhr_data) {
      // terminate the script
    },
    success: function(xhr_data) {
        console.log(xhr_data);
        if (xhr_data.status == 'No new messages') {
            setTimeout(function() { ajax_request(); }, 15000); // wait 15 seconds than call ajax request again
        } else {
            newMailBlinker(); // blink the title here for new messages
        }
    }
    contentType: 'application/json'
  });
}

显然你不会使用 jQuery 和 PHP 来投票。选择一个进行投票。我建议让客户端进行轮询,并让 PHP 在每次连接时检查 IMAP。话虽这么说,这些片段应该让你开始:)

于 2013-03-25T17:28:54.400 回答
0

假设你爸爸总是打开客户端页面,你可以写一个扩展并用 JS 操作屏幕。

例如,您可以:

  1. 在 chrome 中使用 gmail 客户端
  2. 编写一个 chrome 扩展程序来检查收到的新电子邮件。您可以通过识别新电子邮件来实现这一点。我相信 gmail 对新电子邮件使用特定的 css 类。所以你的 JS 只需要检查那个类。

  3. 让扩展程序将页面从白色变为红色,然后再变回白色几次(或直到阅读电子邮件)。

当新电子邮件到达时,您还可以让 chrome 扩展程序播放声音吗?

我发现 chrome 扩展比 FF 更容易使用,特别是如果你只是打算使用 JS。

于 2013-03-25T17:30:23.200 回答