3 Stimmen

Wie authentifiziere ich mich bei Gmail mit Perl?

Ich habe installiert diese Modul, um Zugriff und Kontrolle über den Posteingang von Google Mail zu erhalten. Wenn ich jedoch versuche, eine Verbindung über ein kleines Perl-Skript herzustellen und die Funktionalität zu testen, erhalte ich diese Fehlermeldung.

Error: Could not login with those credentials - could not find final URL
  Additionally, HTTP error: 200 OK

Dies ist ein Fehler, der im Modul Gmail.pm auftritt.

Ich kann die betreffende URL anpingen ( https://www.google.com/accounts/ServiceLoginBoxAuth ), so dass ich glaube, dass das Problem nicht darin besteht, die URL zu finden. Außerdem weiß ich, dass die Anmeldedaten korrekt sind und unter dieser URL funktionieren, da ich sie manuell ausprobiert habe.

Ich benutze diese Skript zum Testen. Ich habe meine Anmeldedaten an den entsprechenden Stellen angegeben.


Ich habe auch installiert diese Modul mit der gleichen Art von Fehler.

Haben Sie eine Idee, warum ich blockiert werde?

12voto

i-blis Punkte 3079

Utilice Mail::IMAPClient wie unten dargestellt. Um SSL-Authentifizierung über Mail::IMAPClient zu erhalten, sollten Sie IO::Socket::SSL von Net::SSLeay installiert haben. Wenn dies der Fall ist, funktioniert dies wie ein Zauber.

#!/usr/bin/env perl
use strict; use warnings;
use Mail::IMAPClient;

# Connect to IMAP server
my $client = Mail::IMAPClient->new(
  Server   => 'imap.gmail.com',
  User     => 'yourusername',
  Password => 'yourp4a55w0r&',
  Port     => 993,
  Ssl      =>  1,
  )
  or die "Cannot connect through IMAPClient: $!";

# List folders on remote server (see if all is ok)
if ( $client->IsAuthenticated() ) {
  print "Folders:\n";
  print "- ", $_, "\n" for @{ $client->folders() };  
};

# Say so long
$client->logout();

2voto

hhunter Punkte 172

Ich greife mit Mail::POP3Client erfolgreich auf ein Google Mail-Konto zu (genauer gesagt ein Google Apps-Konto).

2voto

Ether Punkte 51044

Wenn Sie auch über normales POP3 oder IMAP nicht auf Google Mail zugreifen können, haben Sie eher ein Konfigurationsproblem als ein Programmierproblem.

Ich rufe meine E-Mails von Google Mail ab (eigentlich von Google Apps, das die gleiche Schnittstelle verwendet), wobei ich die hier beschriebenen Konfigurationsdetails verwende: http://download.gna.org/hpr/fetchmail/FAQ/gmail-pop-howto.html

(Diese Antwort ist weitaus besser geeignet für Super-Benutzer allerdings!)

0voto

muruga Punkte 2068

Sie können mit dem folgenden Modul versuchen

  Mail::Webmail::Gmail

0voto

muruga Punkte 2068

Sie können auch den folgenden Code verwenden

use warnings;
use strict;
use Mail::POP3Client;
use IO::Socket::SSL;
use CGI qw(:standard);
my $cgi = new CGI;
my $LOG ;
open $LOG , ">>filename" ;
my $username  = 'name@gmail.com';
my $password  = '*******' ;
 chomp($password);
my $mailhost  = 'pop.gmail.com';
my $port      = '995';

$cgi->header();

my $pop = new Mail::POP3Client(
USER     => $username,
PASSWORD => $password,
HOST     => $mailhost,
PORT     => $port,
USESSL   => 'true',
DEBUG     => 0,
);
if (($pop->Count()) < 1) {
exit;
}

print $pop->Count() . " messages found!:$!\n";

for(my $i = 1; $i <= $pop->Count(); $i++) {
 foreach($pop->Head($i)) {
 /^(From|Subject|Email):\s+/i && print $_, "\n";
 }

$pop->BodyToFile($LOG,$i);

}

$pop->Close();

exit;

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X