স্ক্রিপ্ট যা মেইল.অ্যাপ ইনবক্সে সংখ্যক ইমেলকে আউটপুট করে


6

আমি টার্মিনালে একটি কমান্ড-লাইন স্ক্রিপ্ট রাখতে চাই যা মেইল.অ্যাপে আমার "ওয়ার্ক" ইনবক্সে বার্তাগুলির মোট সংখ্যা আউটপুট করবে। ব্যবহার এইরকম দেখাবে:

$ inbox-count
48

অ্যাপ্লস্ক্রিপ্ট কোডটি এরকম কিছু করার মতো দেখাচ্ছে?


@ আইরিন: আপনার প্রশ্ন কী? এটা করা যায় কিনা?
রবার্ট এস সিয়াসিও

@ ক্যালভেরা: অ্যাপলস্ক্রিপ্ট কোডটি খুঁজছেন। আমি প্রশ্নটি পরিষ্কার করে দিয়েছি।
লরিন হচস্টিন

"আকার" কিলোবাইট সংখ্যা বলতে কী বোঝ? অপঠিত বার্তা? মোট বার্তা?
zevlag

@zevlag: বার্তার মোট সংখ্যা। আমি প্রশ্ন আপডেট করেছি।
লরিন হচস্টিন

উত্তর:


17

আপনি যদি ইনডবক্সে বার্তাগুলির সংখ্যা পেতে চান তবে কোডটির সংক্ষিপ্ত রূপটি

tell application "Mail" to ¬
  get the count of messages of mailbox "INBOX" of account "Work"

আপনি যদি বিশ্বব্যাপী ইনবক্স চান তবে তার get the count of messages of inboxপরিবর্তে আপনি ব্যবহার করতে পারেন । আপনি যদি কেবল অপঠিত বার্তা চান তবে আপনি ব্যবহার করতে পারেন get the unread count of mailbox "INBOX" of account "Work"

এবং আপনি যদি আরও একটি সম্পূর্ণ স্ক্রিপ্ট চান, তবে এটি কৌশলটি করবে:

#!/usr/bin/osascript
property defaultAccount : "Work"
property defaultMailbox : "INBOX"

on run args
  set justUnread to false
  set theAccount to missing value
  set theMailbox to missing value

  if defaultAccount = missing value then set defaultAccount to "-g"
  if defaultMailbox = missing value then set defaultMailbox to "INBOX"

  set theCount to the count of args

  if theCount > 0 then
    if item 1 of args = "-u" then
      set justUnread to true
      set theCount to theCount - 1
      set args to the rest of args
    else if item 1 of args = "-ug" or item 1 of args = "-gu" then
      set justUnread to true
      set item 1 of args to "-g"
    else if theCount > 1 and ¬
            item 1 of args = "-g" and item 2 of args = "-u" then
      set justUnread to true
      set theCount to theCount - 1
      set args to the rest of args
      set item 1 of args to "-g"
    end if
  end if

  tell application "Mail"
    if theCount = 0 then
      set theAccount to defaultAccount
      set theMailbox to defaultMailbox
    else if theCount = 1 then
      set theAccount to item 1 of args
      set theMailbox to defaultMailbox
    else if theCount = 2 then
      set theAccount to item 1 of args
      set theMailbox to item 2 of args
    else
      error character id 10 ¬
          & "Usage: inbox-count [-u] [[account] mailbox]" & character id 10 ¬
          & "       inbox-count [-u] -g [mailbox]"
    end if

    set mailboxValue to missing value
    if theAccount = "-g" then
      if theMailbox = "INBOX" then
        set mailboxValue to inbox
      else
        set mailboxValue to mailbox theMailbox
      end if
    else
      set mailboxValue to mailbox theMailbox of account theAccount
    end if

    if justUnread then
      return the unread count of mailboxValue
    else
      return the count of messages of mailboxValue
    end if
  end tell
end run

এর বেশিরভাগটি হ'ল কমান্ড-লাইন পার্সিং, কারণ এটি অ্যাপলস্ক্রিপ্টে ডান পেতে ব্যথা। তবে আপশোটটি হ'ল সেই স্ক্রিপ্টটি আপনার পথে যেমন রয়েছে inbox-countতখন নিম্নলিখিত কমান্ডগুলি কাজ করে:

  • inbox-count ডিফল্ট মেলবক্স / অ্যাকাউন্ট জুটিতে বার্তাগুলির সংখ্যা পরীক্ষা করতে।
  • inbox-count -g গ্লোবাল (সংযুক্ত) ইনবক্সে বার্তাগুলির সংখ্যা পরীক্ষা করতে।
  • inbox-count Play "প্লে" অ্যাকাউন্টের জন্য ডিফল্ট মেলবক্সে বার্তাগুলির সংখ্যা পরীক্ষা করতে।
  • inbox-count -g Important গ্লোবাল মেলবক্সে "গুরুত্বপূর্ণ" বার্তাগুলির সংখ্যা পরীক্ষা করতে।
  • inbox-count Play Facebook "প্লে" অ্যাকাউন্টের জন্য "ফেসবুক" মেলবক্সে থাকা বার্তার সংখ্যাটি পরীক্ষা করতে।

এছাড়াও আপনি একটি পূর্বে লিখুন পারেন -uসেই কমান্ড (কোন উদাঃ , inbox-count -u, inbox-count -ug, inbox-count -u Play Facebook) শুধু অপঠিত গণনা জন্য। ডিফল্ট অ্যাকাউন্ট এবং মেলবক্স পরিবর্তন করতে, লাইনগুলি পরিবর্তন করুন property defaultAccount : "Work"এবং property defaultMailbox : "INBOX"। যদি defaultAccountহয় missing valueবা হয় "-g", তবে অ্যাকাউন্টটি ব্যবহার না করার জন্য ডিফল্ট হবে; যদি defaultMailboxহয় missing valueবা হয় "INBOX", তবে ডিফল্টটি হ'ল হয় কোনও নামকৃত মেলবক্স ব্যবহার করা "INBOX"বা যদি অ্যাকাউন্ট হয় "-g"তবে গ্লোবাল ইনবক্স ব্যবহার করা।


1
কি দারুন. আমি কেবল ls /Path/To/MailBox/*.emlx | wc -lএকটি বাক্সে বার্তাগুলির মতো কিছু প্রস্তাব দিতে যাচ্ছিলাম তবে আপনার উত্তর অবশ্যই এটির চেয়ে ভাল উত্তর। ধন্যবাদ!
zevlag

একটি প্রদত্ত মেলবক্সের জন্য অপঠিত গণনাটি কীভাবে পাবেন? আমি এই বিবৃতিতে 'অপঠিত' রাখার মতো কোনও জায়গা খুঁজে পাচ্ছি না।
জন ওয়াটেন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.