Schrift
[thread]256[/thread]

Mail an verschiedene Benutzer versenden: Mail an verschiedene Benutzer versenden



<< >> 5 Einträge, 1 Seite
Gast Gast
 2004-05-12 17:51
#2425 #2425
Hallo,

ich stehe vor einem kleinen Problem, ich muss es irgendwie hinbekommen, ein paar Email Adressen zu hinterlegen (vielleicht in einer Textdatei ?) mit einer ID Nummer, forlaufend.
Das Perl Programm müsste dann anhand der übergebenen ID Nummer die passende Email Adresse finden und die Mail an die gefundene Adressen schicken.
Hat jemand von Euch soetwas schon einmal gemacht ? oder kann mir einen Tip geben ?.

Bin für jede Hilfe dankbar
Gruss

Markus
Taulmarill
 2004-05-12 17:56
#2426 #2426
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
hm, also, wenn du eine textdatei nehmen würdest, könnte die so aussehen

Code: (dl )
1
2
3
0001;balrog@moria.me
0002;frodo@hobbingen.me
0003;bilbo@bruchtal.me


dann könnte man das ganze mit so etwas auslesen

Code: (dl )
1
2
3
4
5
open ( FILE, "</pfad/datei.csv" ) or die $!;
while ( <FILE> ) {
my ( $id, $mail ) = split ";";
# arbeite hier mit den ids und Mailaddressen
}
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
Marcus
 2004-05-12 17:57
#2427 #2427
User since
2004-05-03
18 Artikel
BenutzerIn
[default_avatar]
Hallo,

ich hab das unter Linux mit sendmail und folgender Funktion gemacht.
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
################################################################################
sub sendMail {
################################################################################
  my ( $mailto, $mailcc, $subject, $message ) = @_;
  my $mailprog = '/usr/lib/sendmail';
  my $mailmsg;
  return if ( !defined $message );
  $mailmsg = MIME::Entity->build(
      Type     => "multipart/mixed",
      -From    => $MAIN::MAILFROM,
      -To      => $mailto,
      -Subject => $subject );
  attach $mailmsg Data => $message;
  open(MAIL, "| $mailprog -t $mailto")
     or print ACCESS_LOG "Fehler beim Mail-Programm $mailprog: $!\nmail: not send";
  $mailmsg->print(\*MAIL);
  close(MAIL);
}


Gruß Marcus
Free Faq
 2004-05-12 19:20
#2428 #2428
User since
2003-09-10
141 Artikel
BenutzerIn
[default_avatar]
@Taulmarill: Wenn, dann würde ich dies mit einem Array oder noch besser mit einem Hash lösen.
So schreibt er z.B.: $Mails{Id_0} oder $Mails[0] und er hat sofort die EMail die er braucht. Statt 0 kann er in einer Schleife $_ einsetzen,...
Haut mich nicht, ich bin ein Noob!
Taulmarill
 2004-05-13 00:24
#2429 #2429
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
hm, kommt drauf an.

wenn man die mail addressen am anfang einliest und im programm öfter drauf zugreifen muss is nen hash die beste lösung.

wenn man nur eine id hat und nur schnell die dazu passende mail benötigt währe eine if abfrage in der schleife besser, etwa so:
Code: (dl )
1
2
3
4
if ( $id eq $suchId ) {
$gefundeneMail = $mail;
last;
}


mein obiges bespiel sollte nur verdeutlichen wie man die datei dann einliest und verarbeitet. denn egal was mann macht, einlesen und parsen muss man vorher auf jeden fall.

man könnte natürlich auch ne datenbank benutzen ( ich verweise an dieser stelle immer gern auf die kleine und sauschnelle SQLite ).
aber nur für so was ne db zu installieren schein mir etwas übertrieben.
man könnte auch mit storable direkt einen hash in eine datei schreiben.

hm... ich glaub ich sollte jetzt aufhören ;)
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
<< >> 5 Einträge, 1 Seite



View all threads created 2004-05-12 17:51.