Python veya PHP ya bir gmail hesabınıza gelen ekleri almak için nasıl hakkında bilgi bulmak için çalışıyorlar, ben burada birileri, bazı yardım sayesinde olabilir umuyorum.
İlgili:
Yukarıdaki kod aldı ve sabit ve test. Bu PHP5 ile çalışır.
<?php
$gmail_username = 'email@gmail.com';
$gmail_password = 'password';
$imap = imap_open ("{imap.gmail.com:993/imap/ssl}INBOX", $gmail_username, $gmail_password) or die("can't connect: " . imap_last_error());
$savefilepath = '//Server/share/Local/Pathname/'; //absolute path to images directory
$imagefilepath = '/Local/Pathname/'; //relative path to images directory
$savethumbpath = '/Local/Pathname/'; //relative path to images directory
$headers = imap_headers($imap);
foreach ($headers as $mail) {
$flags = substr($mail, 0, 4);
//Check for unread msgs, get their UID, and queue them up
if (strpos($flags, "U")) {
preg_match('/[0-9]+/',$mail,$match);
$new_msg[] = implode('',$match);
}
}
if ($new_msg) {
foreach ($new_msg as $result) {
$structure = imap_fetchstructure($imap,$result);
$parts = $structure->parts;
foreach ($parts as $part) {
if ($part->parameters[0]->attribute == "NAME") {
//Generate a filename with format DATE_RANDOM#_ATTACHMENTNAME.EXT
$savefilename = date("m-d-Y") . '_' . rand() . '_' . $part->parameters[0]->value;
save_attachment(imap_fetchbody($imap,$result,2),$savefilename,$savefilepath,$savethumbpath);
imap_fetchbody($imap,$result,2); //This marks message as read
}
}
}
}
/* grab emails */
$emails = imap_search($imap,'ALL');
/* if emails are returned, cycle through each... */
if($emails) {
/* put the newest emails on top */
$total = imap_num_msg($imap);
/* for every email... */
for( $i = $total; $i >= 1; $i--) {
$headers = imap_header($imap, $i);
$from = $headers->from[0]->mailbox . "@" . $headers->from[0]->host;
echo $from . "\n";
imap_delete($imap,$i);
imap_mail_move($imap,"$i:$i", "[Gmail]/Trash"); // Change or remove this line if you are not connecting to gmail. The path to the Trash folder in your Gmail may be different, capitalization is relevant.
}
}else{
echo "no emails";
}
/* close the connection */
imap_expunge($imap);
imap_close($imap);
function save_attachment( $content , $filename , $localfilepath, $thumbfilepath ) {
if (imap_base64($content) != FALSE) {
$file = fopen($localfilepath.$filename, 'w');
fwrite($file, imap_base64($content));
fclose($file);
}
}
?>
Ben çalışan bazı kod bulundu! Bu, seçilen bir klasörün herhangi eklerini indirmek olacaktır
<?php
$gmail_username = 'username@gmail.com';
$gmail_password = 'mypassword';
$imap = imap_open ("{imap.gmail.com:993/imap/ssl}INBOX", $gmail_username, $gmail_password) or die("can't connect: " . imap_last_error());
$savefilepath = 'path/to/images_folder/'; //absolute path to images directory
$imagefilepath = 'images/'; //relative path to images directory
$headers = imap_headers($imap);
foreach ($headers as $mail) {
$flags = substr($mail, 0, 4);
//Check for unread msgs, get their UID, and queue them up
if (strpos($flags, "U")) {
preg_match('/[0-9]+/',$mail,$match);
$new_msg[] = implode('',$match);
}
}
if ($new_msg) {
foreach ($new_msg as $result) {
$structure = imap_fetchstructure($imap,$result);
$parts = $structure->parts;
foreach ($parts as $part) {
if ($part->parameters[0]->attribute == "NAME") {
//Generate a filename with format DATE_RANDOM#_ATTACHMENTNAME.EXT
$savefilename = date("m-d-Y") . '_' . mt_rand(rand(), 6) . '_' . $part->parameters[0]->value;
save_attachment(imap_fetchbody($imap,$result,2),$savefilename,$savefilepath,$savethumbpath);
imap_fetchbody($imap,$result,2); //This marks message as read
}
}
}
}
imap_close($imap);
function save_attachment( $content , $filename , $localfilepath, $thumbfilepath ) {
if (imap_base64($content) != FALSE) {
$file = fopen($localfilepath.$filename, 'w');
fwrite($file, imap_base64($content));
fclose($file);
}
}
?>
Imap_open için php docs yorumlar (örneğin, 31-Ekim-2007 07:50) de gmail bağlantı açıklamak:
$mbox = imap_open("{imap.gmail.com:993/imap/ssl}INBOX", "username@gmail.com", "password") or die("can't connect: " . imap_last_error());
http://www.electrictoolbox.com/extract-attachments-email-php-imap/: Nerede, belli ki, size gelen yönergeleri izleyin e-posta bölgelerinde ekleri tespit etmek daha sonra uygun, ve gibi gerçek kullanıcı adı ve şifre doldurmak zorunda
Hangi özetleme, kullanmak söylüyor:
// in a for($i=1;$i<$nummsgs;$i++) loop over all the messages in the inbox
$structure = imap_fetchstructure($mbox, $i);
yapısındaki ekleri tespit etmek. Ancak, bu (muhasebeleştirilmesi gerekmektedir isteğe bağlı değişkenlik çok şey var ki) MIME mesajları yapısökümünden oldukça karmaşık bir işlem olduğunu, bu nedenle bunun için bir fonksiyonun temelleri / anahat o electrictoolbox sayfasında bulunmaktadır.