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

Mails über Sendmail >Lokal< senden (Seite 2)

Leser: 2


<< |< 1 2 >| >> 15 Einträge, 2 Seiten
renee
 2008-05-20 15:40
#109993 #109993
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Hoamer+2008-05-20 13:34:34--
Guten Tag,
[...]
Jop, ich werde vom SMTP-Server abgewiesen, was auch in den Logs zu sehen ist.
Hast Du einen Account bei GMX? Hast Du diese Zugangsdaten genommen? Ich bin mir ziemlich sicher, dass ich mal (vor 1 oder 2 Jahren) mit CPAN:Mail::Sender über GMX Mails verschickt habe.

Quote
Aber wie soll ich nun weiter vorgehen, wenn ich keinen SMTP-Server finde, welcher mich drauf lässt?
Ich hoffe doch mal, dass es keinen Server gibt, der Dich ohne Authentifizierung Mails verschicken lässt!
Quote
PS: Einen kostenlosen Webserver, welcher Perl unterstützt habe ich leider nicht ergooglen können - binsch dumm?^


Meinst Du wirklich Webserver oder meinst Du "Provider, der bei kostenlosen Paketen Perl unterstützt"?

Du wirst vermutlich (fast) keinen Provider finden, der in seinen kostenlosen Paketen Perl dabei hat...
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/
Hoamer
 2008-05-20 17:02
#110013 #110013
User since
2008-05-19
8 Artikel
BenutzerIn
[default_avatar]
Super, vielen Dank!
Nachdem ich mir Mail::Sender ein zweites mal angeguckt habe ("Linuxer" hat es mir schonmal empfohlen, aber habe mich irgendwann davon abgewandt, da ich es nicht verstanden habe...) funktioniert es nun.

Musste nur schnell das Modul nachinstallieren und gucken, wie ich es Anspreche. - Und nun funktionierts ;D

Vielen Dank an euch alle - echt!


MfG
Hoamer
Hoamer
 2008-05-21 13:04
#110040 #110040
User since
2008-05-19
8 Artikel
BenutzerIn
[default_avatar]
Moin,

da ich nicht extra einen neuen Beitrag eröffnen wollte, stelle ich mal hier meine Frage, welche mir aufgekommen ist.

Ich möchte bestimmte Daten aus deine Datenbank auslesen und in eine Datei schreiben.
Das klappt alles echt gut. Doch in Verbindung mit der Fnktion, dass diese Datei als Mail versendet werden soll nicht.

Die Datei wird erst am Ende des Skriptes mit Inhalt gefüllt. - Habe Filehandle etc. wieder geschlossen.
Ganz am Ende des Skriptes (nachdem Filehandle etc. geschlossen wurde) rufe ich die Methode mit der Funktion des Mailversandes auf. - Dieser schickt mir aber leider eine leere Datei.

Kann mir jmd. sagen, wie ich die eigentliche Dateiausgabe >während< des Ablauf des Skriptes erledige, damit die Datei nicht mit leerem Inhalt gesendet wird?

Vielen Dank!


MfG
Hoamer
renee
 2008-05-21 13:07
#110041 #110041
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Zeig doch mal etwas Code...
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/
Hoamer
 2008-05-21 13:19
#110042 #110042
User since
2008-05-19
8 Artikel
BenutzerIn
[default_avatar]
EDIT!: Habe gerade eine andere Idee gehabt, also nach etwas ganz anderem gegooglet und bin dabei auf die Lösung gestoßen, welche ich einen Beitrag vorher angefragt habe -.- (und dabei suche ich IMMER mind. 45 min. nach einer Lösung...)

Habe es folgendermaßen gelöst:

bevor ich den Mailversand aufrufe, rufe ich noch die Methode auf, welche die Variablen, die er noch gecachet hat, in die Datei schreibt:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
[...]
$dbh->disconnect();

&dateiausgabe();

&mailversand();

sub dateiausgabe
{
        $old_fh = select(FILE);
        $| = 1;
        select($old_fh);
        }


______________
Okay...hier hab ich dann ma ein paar Ausschnitte des Codes, da alles zu viel währe...

Bitte teilweise nicht über die Comments wundern...ist nur, da ich die sachen gerne Dokumentiere und es auch später noch gut verstehen möchte...


Code (perl): (dl )
1
2
3
use DBI;

use Mail::Sender;


[...]

Code (perl): (dl )
1
2
3
my $dbh = DBI->connect( "$datenbankinformationen","$username","$password") || die "Database connection not made: $DBI::errstr";

my $sql = qq{SELECT sum(e.anzahl) as menge_gesamt, e.spot_id, e.tag, s.name, sp.title, e.anzahl FROM einblendungen e, clients c, standorte s, spots sp where c.id = e.client_id and c.standort_id = s.id and e.spot_id = sp.id and e.tag between '$zeitraumvon' and '$zeitraumbis' and e.spot_id like '$spot_id' group by e.client_id, e.spot_id};


[...]

Code (perl): (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
#Textdatei-Handle wird eröffnet
open(FILE,">/Users/hoamer/Desktop/$dateiname");


$sth->execute();

while(@ergebnis=$sth->fetchrow_array)
{
        
        #Überprüfung, ob die Variable zahler=0 ist. Somit gehen wir sicher, dass dies nur einmal geschrieben wird.
        #Die Ausgabe des Textes geschieht in der Schleife, da man sonst nicht auf bestimmte Werte in der DB zugreifen kann.
        #In unserem Fall benötigen wir dies für den Namen des Spots.
        if($zahler==0)
        {
                printf FILE  "\n\n\n\n\n\n\n\n\nSehr geehrte Damen und Herren,\n\n\n\n\nblabla... Zeitraum vom %s bis zum %s gesendet wurde: \n\n\n", $ergebnis[4], $zeitraumvon, $zeitraumbis;
                $spotname=$ergebnis[4];
                printf FILE  "Spots/std. \t Gesamtzahl \t Name\n\n";
        }
        else
        {
        }


        #Auflistung der Werte als gefakete Tabelle (nur wegen der .txt, aber nicht wichtig)
        if(length($ergebnis[0]) ==1)
        {
                $ergebnis[0] =~ s/\Z/     /g
                
        }
        if(length($ergebnis[0]) < 4)
        {
                $ergebnis[0] =~ s/\Z/  /g;
        }
        else
        {               
        }
        
        
        #In datenbank sind Zeilenumbrüche vorhanden, welche hier ausgeschlossen werden sollen
   $ergebnis[1] =~ s/\n+\s//g;
   $ergebnis[5] =~ s/\n+\s//g;
   $ergebnis[0] =~ s/\n+\s//g;
   $ergebnis[3] =~ s/\n+\s//g;
   $ergebnis[1] =~ s/^\n+//g;
   $ergebnis[5] =~ s/^\n+//g;
   $ergebnis[0] =~ s/^\n+//g;
   $ergebnis[3] =~ s/^\n+//g;
   $ergebnis[1] =~ s/\n//g;
   $ergebnis[5] =~ s/\n//g;
   $ergebnis[0] =~ s/\n//g;
   $ergebnis[3] =~ s/\n//g;
  
        #Ausgabe
   
    print FILE  $ergebnis[5]."\t\t ".$ergebnis[0]."\t\t ".$ergebnis[3]."\n";    
   
    $zahler++;
}


[...]

Code (perl): (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
print FILE "\n\n\nWir Bestätigen, dass das oben genannte Material gesendet wurde.\n\n\n\n\n\nMit freundlichen Grüßen\nVICI Connect"; 

#handle schließen
close(FILE);

#View muss wieder aus der tabelle entfernt werden
my $sql = qq{DROP VIEW VICIadmin_development.ubergabeview};
my $sth = $dbh->prepare( $sql );
$sth->execute();

#Datenbank-Handle "so, das wars..."
$sth->finish();

#Datenbank-Handle wird geschlossen
$dbh->disconnect();

&mailversand();

sub mailversand 
{
        sleep 15;
    #Die Datenausgabe kann auch bei "*1" direkt stattfinden, anstatt, dass diese als Attachment gesendet wird.
        
 
 # my $mailtext = "Das ist der Text\nden ich gerne senden wuerde..."; 
  
  
  my $sender = new Mail::Sender 
  {
                smtp => 'mail.gmx.net',
                from => '546@gmx.de',
                auth => 'LOGIN',
                authid => '12345',
                authpwd => 'jjjjjjjj',
                on_errors => undef,
  }  or die "Can't create the Mail::Sender object: $Mail::Sender::Error\n";

$sender->MailFile
 (
  {
                to => $usermails,
                subject => 'Spotinformationen',
                msg => "Sehr geehrte Damen und Herren, \n\nblablabla '$spotname' im Zeitraum vom '$zeitraumvon' bis zum '$zeitraumbis'.\n\n\nAnhang:\n$dateiname", 
                file => $dateiname,
   }
);
<< |< 1 2 >| >> 15 Einträge, 2 Seiten



View all threads created 2008-05-19 17:05.