2013-03-16 87 views
5

我正在尋找任何方法來使整個屏幕在發生未讀電子郵件時閃爍紅色或任何顏色。它可以用於任何電子郵件客戶端。我做了大量的搜索,並找不到任何東西。 thunderbird上有一個附加組件,可以創建一個閃爍的通知,但它只在屏幕的右下角顯示很小。如何在存在未讀電子郵件時使屏幕閃爍

我在想也許是Firefox或Chrome的一個附加組件,它可以讓我編寫自定義的css和javascript,它可以在Gmail上運行,並使閃爍發生。 任何想法,不勝感激。

我知道這不是你經常這樣的問題,但你們都很棒,我不知道還有什麼可以轉身的。如果在這類問題上有更好的論壇,你也可以通知我。

謝謝!

+0

所有客戶......你的意思是所有的服務器? GMail,Hotmail,Yahoo和其他基於Web的電子郵件服務,以及Pop/Imap服務器也是如此? – ixe013 2013-03-18 19:11:06

+0

@ ixe013我的意思是任何客戶,我不關心我使用哪一個。答案可能是thunderbird的一些特定附件。它不需要用於所有電子郵件服務。但它確實需要使用Windows和Pop/Imap。 – dezman 2013-03-18 19:32:29

+1

爲什麼有人想要這樣做呢?如果你真的設法做到這一點,準備好讓自己精力充沛的用戶收到無數的仇恨郵件。 – HerrSerker 2013-03-21 15:10:54

回答

1

而不是使Chrome的插件,我要麼使窗口標題眨眼或使用HTML5通知。創建一個簡單的頁面,用於輪詢IMAP Gmail中的新郵件,並將gmail包含在一個大型的iFrame中。如果找到新消息,您的外部窗口可以發出通知。

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

閃爍標題(從this通過):

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投票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([email protected]_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腳本(從this通過):

// 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檢查。這就是說,這些片段應該讓你開始:)

1

抓住當前的google郵件檢查器擴展示例(https://developer.chrome.com/extensions/samples.html)。將其轉換爲打包的應用程序(抓取您想要的部分),打開一個非常大的窗口並快速關閉它。這應該夠了吧。可悲的全屏似乎不可能。但我不知道這是否是一個問題。

+0

請注意https://chromiumcodereview.appspot.com/12205002重新打包應用程序的全屏支持。這應該在M26開發中,也許現在是beta頻道。 – sowbug 2013-03-17 03:39:07

2

我在搜索時發現了這個程序,還沒有嘗試過。但它表示,它可以在電子郵件到達時執行外部程序。所以看起來你可以編寫一個小小的C#應用​​程序來執行你想要的任務,並在新電子郵件到達時執行。

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

0

假設你父親的客戶端頁面總是打開,你可以寫一個擴展名,並用JS操縱屏幕。

例如,您可以:

  1. 使用Gmail客戶端鉻
  2. 寫Chrome擴展程序,檢查該進來的新的電子郵件,您可以通過識別新郵件達到這個。我相信gmail使用特定的css類來處理新的電子郵件。所以你的JS只需要檢查那個類。

  3. 是否有擴展名將頁面從白色更改爲紅色並再次更改爲白色(或直至讀取電子郵件)。

您還可能有一個新的電子郵件到達時擴展鉻播放聲音?

我發現擴展比FF更容易使用,特別是如果你只是要使用JS。