Thursday, December 22, 2011

Managing your IMAP account using Perl


This perl script will give you a basic idea of how your IMAP account can be managed  via perl.  I have been using perl to manager certain tasks with my GMail account ( GMail provides both POP and IMAP services).

We make use of the Mail::IMAPClient perl module for manipulating imap accounts.  This script also prompts for a password from command line so that you don't have to hard code your password in the script.


### Module loading

### Mail::IMAPClient for manipulating IMAP accounts
use Mail::IMAPClient;

### Term::ReadKey is for accepting passwords from terminal
use Term::ReadKey;

### Ask for password
print "Enter Password:";
               ReadMode('noecho');
               chomp ( my $imapPassword = ReadLine(0)) ;
               ReadMode('restore');
print "\n";

### Provide your imap username here
my $imapUser = 'your.imap.user' ;

### Provide your imap server name
my $imapServer = 'your.imap.server.name';

### Provide your imap server port number, default is 993.
my $imapPort = 993;

my $imap = Mail::IMAPClient->new(
    Server   => $imapServer,
    User     => $imapUser,
    Port     => $imapPort,
    Password => $imapPassword,
    Ssl      => 1,
  )

or die "Can't connect to $imapServer as $imapUser: $@";

### You are now logged into the imap account.  Play around a bit

### Print all folders
my $folders = $imap->folders or die "List folders error: ", $imap->LastError, "\n";
foreach ( @$folders )  { print $. , " ) " , $_ ,"\n"; }

### Count messages in the Sent folder
my $msgcount = $imap->message_count('Sent');
print "Count $msgcount\n";

### Process all emails in the folder "Work"

## Start by selecting the Work folder
$imap->select('Work') or
    die("Couldn't select Work folder", $!);

## Load all message ids in Work folder to @msgs
my @msgs = $imap->messages or die "Couldn't get messages: $@\n";

## Backup message to $file

my $TS = time;
my $FILE = "imap_bakup_".$TS;
open MAILBACKUP, ">>", $FILE or die "Couldn't open $FILE"
print MAILBACKUP "Starting backup at time : $TS\n";}

foreach my $msgid (@msgs)
{
 $imap->message_to_file(MAILBACKUP,$msgid) or die "Couldn't backup $msgid: $@\n";
}

print MAILBACKUP "Finished backup";
close BACKUP;

## Delete all messages in "Work" folder
$imap->delete_message(\@msgs) or die "Couldn't delete message in folder Work: $@\n";

### Create new folder "Life"
$imap->create("Life") or die "Couldn't create folder Life: $@\n";

### Delete the folder "Life"
$imap->delete("Life") or die "Couldn't delete folder Life: $@\n";

### Expunge messages marked as deleted in the selected folder
$imap->expunge() or die "Couldn't expunge: $@\n";

### Close the selected folder
$imap->close or die "Couldn't close: $@\n";

### Logout IMAP
$imap->logout

1 comment:

  1. đồng tâm
    game mu
    cho thuê nhà trọ
    cho thuê phòng trọ
    nhac san cuc manh
    số điện thoại tư vấn pháp luật miễn phí
    văn phòng luật
    tổng đài tư vấn pháp luật
    dịch vụ thành lập công ty trọn gói
    nước cờ trên bàn thương lượng
    mbp
    erg
    nghịch lý
    chi square test
    nghệ thuật nói chuyện
    coase
    thuyết kỳ vọng
    chiến thắng con quỷ trong bạn
    cân bằng nash

    Cẩm Hồng chủ yếu sản xuất mấy thiết bị trong Tv. Theo thị trường Tv phát triển, hiệu quả kinh doanh của công ty điện tử An Đô khá tốt, Tv Thịnh Thế cũng khá nổi tiếng ở khu vực Trung Nam. Điện tử Cẩm Hồng cũng chính là sản xuất thiết bị cho Công ty Điện tử An Đô.

    Bữa ăn khá vui vẻ, người Đài Loan rất nhiệt tình. Cù Vận Bạch uống mấy chén rượu làm hai má đỏ bừng lên.

    Ăn xong, người Đài Loan lại bố trí mọi người đi hát, bọn họ rất nhiệt tình nên không thể từ chối, đoàn người cũng chỉ có thể nghe theo.

    Phòng Karaoke này có thiết bị hàng đầu, nhập khẩu từ Nhật Bản tới. Mao Hữu Phúc này hát nghe cũng được, tiếng mặc dù không hiểu nhưng nhìn từ chữ trên màn hình cũng nghe ra.

    Có lẽ do men rượu nên Cù Vận Bạch cũng tự nhiên hơn, cô hát bài Bắc quốc chi xuân làm mọi người không ngừng vỗ tay cổ vũ. Cù Vận Bạch lại hát tehem bài Mồng tỉnh thì phân.

    - Chủ nhiệm Triệu, thật không ngờ Bí thư Cù lại hát hay như vậy. Bài Bắc quốc chi xuân không phải ai cũng hát được như vậy.
    Bặc Viễn năm nay hơn 30 tuổi, quan hệ khá tốt với Triệu Quốc Đống.

    - Ha ha, ngứa giọng phải không? Nếu không tôi giúp anh chọn hát một bài với Bí thư Cù?
    Triệu Quốc Đống không hay hát nên không đứng lên.

    - Đừng, tôi nhiều năm không hát rồi.
    Bặc Viễn cũng hơi động tâm nhưng lại có chút lo lắng.

    - Sợ gì chứ? Tôi chọn bài Bình tụ cho anh, không khó gì cả. Sau đó thêm một bài Phiến phiến phong diệp tình.

    Chính xác mà nói Cù Vận Bạch và Bặc Viễn hát chung không quá thành công. Cù Vận Bạch có hơi men nên hát rất du dương, nhưng Bặc Viễn có chút lo lắng nên giọng hơi khô cứng.

    ReplyDelete