Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]4302[/thread]

Erfahrungen mit IMAP?

Leser: 2


<< |< 1 2 >| >> 15 Einträge, 2 Seiten
renee
 2005-06-17 10:53
#37661 #37661
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Ich habe das Modul CPAN:Mail::IMAPClient benutzt und damit hat folgendes sehr gut funktioniert:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#! /usr/bin/perl

use strict;
use warnings;
use CGI qw(:standard);
use Data::Dumper;
use CGI::Carp qw(fatalsToBrowser);
use lib qw(.);
use Mail::IMAPClient;
use Mail::Address;

print "Content-type: text/plain\n\n";#header(type => 'text/plain');

# general settings for connection
my $user = 'user';
my $server = 'imap.gmx.net';
my $password = 'password';
my $folder = 'INBOX';
my $target = '/path/to/target.file';


my $imap = Mail::IMAPClient->new(Server => $server,
User => $user,
Password => $password) or die $@;

my $mail_addresses = get_addresses($imap,$folder);
#print_to_file($target,$mail_addresses);
print $_,"\n" for(@$mail_addresses);

#------------------------------------------------------------------------------#
# Subroutines #
#------------------------------------------------------------------------------#

##
# parse e-mail-addresses from mail-headers
##
sub get_addresses{
my ($imap,$folder) = @_;
my @mail_addresses;
$imap->select($folder);
for my $folder($imap->messages()){
my $hashref = $imap->parse_headers($folder,"From");
my @from_addresses = Mail::Address->parse($hashref->{From}->[0]);
my $address = $from_addresses[0]->address();
push(@mail_addresses,$address);
}
return \@mail_addresses;
}# end get_addresses

##
# print the mail-addresses into a txt-file
##
sub print_to_file{
my ($target,$addresses) = @_;
open(my $fh,">>$target") or die $!;
for my $a(@$addresses){
print $fh $a,"\n";
}
close $fh;
}
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
ptk
 2005-06-17 12:49
#37662 #37662
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
@renee: Hast du auch einen Tipp, wie man imaps (IMAP over SSL) damit macht?
J-jayz-Z
 2005-06-22 14:46
#37663 #37663
User since
2005-04-13
625 Artikel
BenutzerIn
[Homepage] [default_avatar]
Ich hab noch ein Problem:
Ich finde in der CPAN doku keine Möglichkeit, den mailbody zu lesen??? kann mir da jemand helfen? Mit einem beispielscript oder so...?
Danke schonmal\n\n

<!--EDIT|J-jayz-Z|1119437262-->
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="5065726c2d436f6d6d756e697479"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'

http://perl-tutor.de
J-jayz-Z
 2005-06-22 15:04
#37664 #37664
User since
2005-04-13
625 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hmm, kannst du mir vielleicht erklären, in wie weit mir dieses Modul weiter helfem kann?
Wie du sicher schon gemerkt hast, bin ich doch ein ziemlicher newbie :(
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="5065726c2d436f6d6d756e697479"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'

http://perl-tutor.de
esskar
 2005-06-22 17:05
#37665 #37665
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
hmm...
was willst du tun?
eine mail bauen, oder eine Mail erzeugen?
J-jayz-Z
 2005-06-22 17:08
#37666 #37666
User since
2005-04-13
625 Artikel
BenutzerIn
[Homepage] [default_avatar]
Eine vorhandene mail lesen...
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="5065726c2d436f6d6d756e697479"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'

http://perl-tutor.de
J-jayz-Z
 2005-06-22 19:08
#37667 #37667
User since
2005-04-13
625 Artikel
BenutzerIn
[Homepage] [default_avatar]
Das:
Code: (dl )
my $body = $entity->bodyhandle;

sieht doch fast so aus, als ob der Variable $body, den wert des body bereiches zugewiesen wird, oder?
Wenn nicht, wie kann ich dann mit diesem Modul eine Mail lesen?
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="5065726c2d436f6d6d756e697479"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'

http://perl-tutor.de
J-jayz-Z
 2005-06-17 10:47
#37668 #37668
User since
2005-04-13
625 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hi,

hat jemand von euch Erfahrungen mit Perl und IMAP?
Ich habe mal auf CPAN gesucht und gesehen, dass die Module noch Version 0.irgendwas sind.
Ist das Module Net::IMAP::Simple für die gewöhnlichen Aufgaben, wie Nachrichten auflisten, löschen und lesen ausreichend?
Oder sollte ich da zu dem Modul Net::IMAP greifen, welches um einiges Komplexer ist und noch Version 0.02 ist...
thx schonmal
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="5065726c2d436f6d6d756e697479"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'

http://perl-tutor.de
J-jayz-Z
 2005-06-17 11:47
#37669 #37669
User since
2005-04-13
625 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hmm, das sieht gut aus, thx! ! !
Aber eine Bitte hätte ich noch. Könntest du mir vielleicht die folgenden Zeilen erklären?
Code: (dl )
1
2
3
4
5
6
7
for my $folder($imap->messages()){
my $hashref = $imap->parse_headers($folder,"From");
my @from_addresses = Mail::Address->parse($hashref->{From}->[0]);
my $address = $from_addresses[0]->address();
push(@mail_addresses,$address);
}
return \@mail_addresses;

Da hab ich die Funktionsweise von parse_headers nicht ganz verstanden.
In der CPAN Doku steht nur als erstes Argument 1 drinne. Wieso bei dir $folder?
Was bewirkt das?
Also die Zeile extrahiert wohl den From Bereich aus dem Mail Header, oder?
Code: (dl )
my $hashref = $imap->parse_headers($folder,"From");

Was macht dann aber diese Zeile hier:
Code: (dl )
my @from_addresses = Mail::Address->parse($hashref->{From}->[0]);

Und das versteh ich auch nicht ganz:
Code: (dl )
my $address = $from_addresses[0]->address();

Könntest du mir das plz erklären???
Thx!
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="5065726c2d436f6d6d756e697479"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'

http://perl-tutor.de
esskar
 2005-06-17 14:01
#37670 #37670
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
ja; ist simple; steht in der pod:

Quote
Example:

       $Socket = $imap->Socket();
       # or:
       $imap->Socket($socket_fh);

The Socket method can be used to obtain the socket handle of the current connection (say, to do I/O on the connection that is not otherwise supported by Mail::IMAPClient) or to replace the current socket with a new handle (perhaps an SSL handle, for example).

If you supply a socket handle yourself, either by doing something like:

        $imap=Mail::IMAPClient->new(Socket=>$sock, User => ... );

or by doing something like:

        $imap=Mail::IMAPClient->new(User => $user, Password => $pass, Server => $host);
        # blah blah blah
        $imap->Socket($ssl);

then it will be up to you to establish the connection AND to authenticate, either via the the login manpage method, or the fancier the authenticate manpage, or, since you know so much anyway, by just doing raw I/O against the socket until you're logged in. If you do any of this then you should also set the the State manpage parameter yourself to reflect the current state of the object (i.e. Connected, Authenticated, etc).


und den kannst du mit CPAN:IO::Socket::SSL oder sogar mit [cpan= IO-Socket-SecureSocks] IO-Socket-SecureSocks[/cpan] erstellen!\n\n

<!--EDIT|esskar|1119002492-->
<< |< 1 2 >| >> 15 Einträge, 2 Seiten



View all threads created 2005-06-17 10:53.