Toon posts:

[FTP] Uploaden vanuit email

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik zat net even te denken en kwam op een volgend idee uit. Is er een programmaatje dat elke x-minuten in een (dedicated) pop-adres kijkt of er emails met attachments zijn om vervolgens die attachments te uploaden naar een bepaald ftp-adres. Dit lijkt me vrij handig.

Dus:

- Elke x-minuten inloggen op een al dan niet dedicated pop3-email-adres.
- Als er mail ligt met een attachment (of met een bepaalde string in de subject-regel) dan dit attachment uploaden naar een ftp-adres.

bestaat zoiets? Ik heb gezocht maar kon het niet vinden.

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB/AI

Front verplichte underscores

Clientside weet ik niet maar je zou bijv. een procmail (of andere mailserver) script kunnen maken die automatisch attachments opslaat. Waarschijnlijk zijn er ook wel semi-kant en klare scripts te vinden die dat doen.

offtopic:
Lijkt mij ook wel handig om eens mee te spelen, laat het dus even weten als je er een hebt O-)

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


  • CmdrKeen
  • Registratie: Augustus 2000
  • Laatst online: 27-05 21:11

CmdrKeen

Krentenboltosti

MDaemon kan dat, maar dat is een commerciële mailserver. Je zou zelf in VB een progje kunnen maken dat in de Windows 2000 SMTP-service kijkt. Met Outlook Express kan het ook, maar ook dan moet je scripten.

Verder zou het handig zijn als je zou vermelden op welk platform het programma moet draaien.

Bloed, zweet & koffie


Verwijderd

Topicstarter
Oh sorry. Het gaat mij om een proggie dat draait onder Windows. Welke windows het is maakt me niet uit; het liefst moet het draaien onder Windows Server 2003, en dan als service.

  • shnazzle
  • Registratie: September 2004
  • Laatst online: 21-01-2025
Je kunt met PHP pop3 mail ophalen, dan zou je een beetje moeten parsen naar de data in een email. Je zou bijvoorbeeld gebaseerd op de grote van een message ervan uitgaan of het een attachment bevat, of gewoon in de mail zelf te kijken of je de zin "Content-Disposition attachment;" ziet staan. Daarna kun je de betreffende file weer opbouwen (moet je wel eerst van BASE64 encodering terug zetten naar een normaal formaat) en dan dat bestand op een willekeurige site zetten (via php).

pfff....duidelijk? :P

  • sanfranjake
  • Registratie: April 2003
  • Niet online

sanfranjake

Computers can do that?

(overleden)
Zou je misschien met iets als http://www.aspnetpop3.com/faq.aspx zoiets kunnen knutselen? Of via telnet?

[ Voor 7% gewijzigd door sanfranjake op 21-09-2005 14:18 ]

Mijn spoorwegfotografie
Somda - Voor en door treinenspotters


  • 0xDEADBEEF
  • Registratie: December 2003
  • Niet online
Het uploaden kan je automatiseren met cURL; zie ook http://gathering.tweakers.net/forum/list_messages/1005117

"Religion is an insult to human dignity. With or without it you would have good people doing good things and evil people doing evil things. But for good people to do evil things, that takes religion." - Steven Weinberg


  • shnazzle
  • Registratie: September 2004
  • Laatst online: 21-01-2025
Ik heb inmiddels het PHP verhaal uitgeprobeerd en het werkt allemaal als een speer :)
inderdaad de imap library gebruiken om contact te leggen met pop3 server, dan body binnenhalen, zoeken op content tag voor attachments, en dan de base64_decode functie op de in-base64-gecodeerde attachment. Daarna die boel opslaan als file op een willekeurige locatie

..err...dit uitgaande van het feit dat we het hebben over een stereotypische tweaker met apache+php op een *nix bak of zo 8)7

Met een beetje gefriemel in java is ook heel snel een applicatie hiervoor te bakken trouwens... die van mij is bijna klaar na 45 minuten...dus.. te doen allemaal.
Het uploaden kan je automatiseren met cURL; zie ook command line /scriptable win32 FTP client die PASV support?
offtopic : ik heb nog nooit ZO veel command-line opties gezien

  • CmdrKeen
  • Registratie: Augustus 2000
  • Laatst online: 27-05 21:11

CmdrKeen

Krentenboltosti

For the record: met ASP kan je dit ook, en dan dus met IIS (ja ja Chilisoft bla bla). Een command line / scriptable Win32 FTP-client die PASV support is MoveIT Freely. Als je dit gaat downen, lijkt het alsof het niet gratis is, maar lees even verder. Het is exact hetzelfde als de ingebouwde FTP-client in WXP, alleen dan met ondersteuning voor PASV. En het is gratis.

Je hebt trouwens ook ASP-componenten die je vanuit ASP batch-files laat uitvoeren. Wel heel goed oppassen met de beveiliging dan! (Ik heb dit component zelf ook gebruikt, pain in the ass om aan de praat te krijgen, maar wel extreem handig als het gelukt is.)

Een andere oplossing is misschien Outlook Express automatiseren met Authotkey en FTPS (MoveIt Freely of de standaard WXP-FTP-client).

Laat je het even weten als het gelukt is, en op welke manier?

[ Voor 19% gewijzigd door CmdrKeen op 21-09-2005 16:32 ]

Bloed, zweet & koffie


  • Oezie Woezie
  • Registratie: December 1999
  • Niet online

Oezie Woezie

Pim. is de beste

F_J_K schreef op woensdag 21 september 2005 @ 12:56:
Clientside weet ik niet maar je zou bijv. een procmail (of andere mailserver) script kunnen maken die automatisch attachments opslaat. Waarschijnlijk zijn er ook wel semi-kant en klare scripts te vinden die dat doen.

offtopic:
Lijkt mij ook wel handig om eens mee te spelen, laat het dus even weten als je er een hebt O-)
zoiets heb ik al.
code:
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
#!/usr/bin/perl -w

use Email::Send;
use Email::Simple;
use Email::Filter;
use Email::MIME::Attachment::Stripper;
use Fcntl;
use strict;
use File::chmod;
use Data::Dumper;

my %list = (    'xxx@xxx.xxx.nl' => undef);

my $m_obj = Email::Filter->new();
my $mail  = Email::MIME->new($m_obj->simple->as_string);

my $from  = $m_obj->from();
print "From: => $from\n";
$from =~ s/<(.+)>$/<attachment\@xxxxx.xxxxorg>/;
my $dir = $1;
delete $list{$dir};
$dir =~ s/@/./;

my $stripper = Email::MIME::Attachment::Stripper->new($mail);
my Email::MIME $msg = $stripper->message;
my @attachments       = $stripper->attachments;
foreach my $file (@attachments)
{
        if($dir =~ /.*/)
        {
                mkdir "/hoxxxxml/attachments/$dir/";
                chmod(0755,"/hoxxxxml/attachments/$dir/");
                sysopen(FILE,"/hxxxxxts/$dir/$file->{filename}",O_WRONLY|O_CREAT|O_TRUNC);
                print FILE $file->{payload};
                close FILE;
                chmod(0744,"/xxxxxs/$dir/$file->{filename}");
                ${msg}->{body}.="\n Attachment beschikbaar op: http://xxx/~xxxxx/$dir/$file->{filename}\nEn als je er niet bij kan door een rechten probleem heb je gewoon pech.";
        }
}

$m_obj->simple;
$m_obj->simple->header_set("From", $from);
$m_obj->simple->header_set("To", undef);
$m_obj->simple->header_set("BCC", join(",", keys %list));
$m_obj->simple->header_set("X-Original-To", undef);
$m_obj->simple->header_set("Delivered-To", undef);
$m_obj->simple->header_set("Content-Type", undef);
$m_obj->simple->body_set(${msg}->{body});
# print $m_obj->simple->as_string;

 send SMTP => $m_obj->simple->as_string,'hxxxxxg';


als je een mailtje stuurt naar een bepaald email adres wordt het attachment eruit gefilterd en kan je eventueel nog een mailtje terug sturen met de locatie waat het staat.

in mijn procmail staat:
code:
1
2
3
:0w:
* ^TO_xxx\@xxx.xxx.org
| /hxxxxxk/attachment.pl > /hxxxxxik/attachment.txt


onder windows zal er vast ook wel een mailserver zijn waar je mailtjes kan forwarden naar een programma of script.

[ Voor 12% gewijzigd door Oezie Woezie op 21-09-2005 17:45 ]

een mooi Tshirt met Pim. is de beste enzo


  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB/AI

Front verplichte underscores

offtopic:
Oeh, thanks.

Misschien wil je trouwens de servernaam even uit je code slopen en vervangen door een generiek iets. Op deze manier kunnen ten eerste per ongeluk mensen jouw mailadres gaan gebruiken als je niet opletten en ten tweede kunnen mensen zo je attachments lezen en dat is misschien privacy-gevoelig, ondanks dat je er geen password op hebt staan.

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)

Pagina: 1