SELFPHP: Version 5.8.1 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche


International PHP Conference


WebTech Conference



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



PHP Summit


Software Architecture Summit


:: Buchempfehlung ::

Websites optimieren für Google & Co.

Websites optimieren für Google & Co. zur Buchempfehlung
 
HTML5 Days


JavaScript Days


:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Deine Leidenschaft ist die Unterwasserfoto-grafie?


Dann ist Qozido genau das Richtige für Dich!

Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler ist da!

www.qozido.de

 


Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 13.11.2006, 13:00:30
panametrics panametrics ist offline
Anfänger
 
Registriert seit: Nov 2004
Ort: Mittelfranken
Alter: 30
Beiträge: 86
panametrics befindet sich auf einem aufstrebenden Ast
phpMailer Problem, 2 Mail hintereinander können nicht versendet werden

Hallo,
ich arbeite mit dem PHP-Mailer, und habe damit eine kleine Grenze erreicht.

Hintergrund:
Gesendet werden die Mails an einen Lotus Notes Domino-Server,
dieser benötigt keine SMTP-Authentifizierung,
Er nimmt Mails an, und das intern in unbegrenzten Zeitabständen, also muss keine Leerzeit zwischen 2 Mails sein.

Nun zum Problem:
ich habe mir eine kleine phpmailer Funktion gebaut, und gebe dieser die wichtigsten Daten, recipient, subject, body und alternativ body...

Den rest macht dann die Funktion (Verbindungsaufbau, etc.)

Wenn ich die Funktion (oder auch das komplette Script zum versenden, ist egal welche Methode) zweimal hintereinander aufrufe, was ich aktuell bewerkstelligen müsste, sendet er nur die erste Mail, und alles danach bricht ab!
Es wird also nicht die zweite Funktion durchlaufen.

Dachte mir gut, vielleicht ist ein "break" oder "die" in der phpmailer class, was ich auch gefunden habe. also habe ich mir die Arbeit gemacht, und alle Switch/Case Aufrufe in if/elseif/else geändert, das Script funktioniert auch nach wie vor problemlos, nur die zweite Mail geht noch immer nicht raus.
Hat da schonmal wer mit gekämpft?

PS: momentan läuft das Script auf ner Windows Maschine mit Xampp, geht aber auch unter ner anständigen Suse Linux umgebung nicht, da hab ich es auch getestet! ;-(

Auszug aus der Funktion "f_phpmailer.php":
PHP-Code:
<?
FUNCTION phpmailer$email_recipient$email_subject$email_body$email_altbody )
{
    
ini_set("include_path""D:/Programme/xampp/htdocs/berechtigung/phpmailer/");

    require(
"class.phpmailer.php");

    
#$mail->SetLanguage("de", "/language/");

    
$mail                 = new PHPMailer();
    
$mail->IsSMTP();                                                  // Mailer anweisen SMTP zu nutzen
    
$mail->Host         "my_private_host";                // Haupt- und Backup-SMTP-Server
    
$mail->SMTPAuth     false;                                     // SMTP Authentification notwendig?

    
$mail->From         "mail@my_private_host";
    
$mail->FromName     "Helpdesk";
    
#$mail->AddAddress( $empfaenger_adresse );
    
$mail->AddAddress$email_recipient );                          // Der Displayname ist Optional

    
$mail->WordWrap     50;                                          // WordWrap nach 50 Zeichen
    
$mail->IsHTML(true);                                              // Email Format auf HTML setzen

    
$mail->Subject         $email_subject;
    
$mail->Body            $email_body;
    
$mail->AltBody         $email_altbody;

    if(!
$mail->Send())
    {
        return 
false;
        
#return "Message could not be sent. <p>Mailer Error: " . $mail->ErrorInfo;
    
}
    else
    {
        return 
true;
    }
}
?>
Würde mich freuen wenn wer ne Lösung hat,
die class.phpmailer.php und class.smtp.php sind die org Dateien...

Tom
__________________
# man lernt nie aus #
Mit Zitat antworten
  #2  
Alt 13.11.2006, 13:10:44
BenniG. BenniG. ist offline
Member
 
Registriert seit: Oct 2006
Beiträge: 610
BenniG. befindet sich auf einem aufstrebenden Ast
AW: phpMailer Problem, 2 Mail hintereinander können nicht versendet werden

mal Error_Reporting hochgesetzt?
PHP-Code:
ini_set("display_errors",true);
error_reporting(E_ALL); 
ich könnte mir vorstellen, dass das require bei jedem Funktionsaufruf Probleme macht..
Vielleicht mal das require außerhalb der Funktion aufrufen..
Mit Zitat antworten
  #3  
Alt 13.11.2006, 13:25:57
panametrics panametrics ist offline
Anfänger
 
Registriert seit: Nov 2004
Ort: Mittelfranken
Alter: 30
Beiträge: 86
panametrics befindet sich auf einem aufstrebenden Ast
AW: phpMailer Problem, 2 Mail hintereinander können nicht versendet werden

Habs probiert, bringt net viel... ;-(
hab ja auch schon versucht das was in der Funktion abgearbeitet wird manuell ins script zu coden, da wird dann ja auch explizit die class.phpmailer.php ohne Funktion aufgerufen...

hm, irgendwie muss des doch sicher gehen, aber wie?

son shice! ich grübel da schon seit einer woche dran rum, und finde keine lösung.

hab schon über legt, dass wenn die erste mail raus ist, dass ich dann nen header redirect auf ne neue seite mache, in der ich dann die funktion nochmal aufrufe, und dann erst ne Meldung rausgeben, aber wies der teufel will, gefällt mir redirect einfach net!

Danke trotzdem erstmal: Tom
__________________
# man lernt nie aus #
Mit Zitat antworten
  #4  
Alt 13.11.2006, 13:27:22
Benutzerbild von meikel
meikel meikel ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 65
Beiträge: 4.001
meikel befindet sich auf einem aufstrebenden Ast
AW: phpMailer Problem, 2 Mail hintereinander können nicht versendet werden

Zitat:
Zitat von BenniG. Beitrag anzeigen
mal Error_Reporting hochgesetzt?
Sicher nicht, sonst gäbe es das Thema nicht.
Zitat:
ich könnte mir vorstellen, dass das require bei jedem Funktionsaufruf Probleme macht..
Die Vorstellung ist richtig. Die Fehlermeldung kann zwar durch die Verwendung von require_once() vermieden werden, aber ein Klasse per require(_once) innerhalb einer Funktion, die mehrfach aufgerufen wird, zu verwenden, ist sinnfrei.
Mit Zitat antworten
  #5  
Alt 13.11.2006, 13:30:34
Benutzerbild von meikel
meikel meikel ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 65
Beiträge: 4.001
meikel befindet sich auf einem aufstrebenden Ast
AW: phpMailer Problem, 2 Mail hintereinander können nicht versendet werden

Zitat:
Zitat von panametrics Beitrag anzeigen
Habs probiert, bringt net viel... ;-(
Das, was Du getippert hast, bringt noch weniger.

Zitat:
hab ja auch schon versucht das was in der Funktion abgearbeitet wird manuell ins script zu coden, da wird dann ja auch explizit die class.phpmailer.php ohne Funktion aufgerufen...
Das ist Quark. Du sollst im "Hauptscript" die Klasse per require einfügen, damit die Klasse an sich dem Script bekannt ist. Dann kannst Du in Deiner Funktion so oft Du willst Deine Instanzen bilden.

Geändert von meikel (13.11.2006 um 13:38:43 Uhr)
Mit Zitat antworten
  #6  
Alt 13.11.2006, 13:31:59
BenniG. BenniG. ist offline
Member
 
Registriert seit: Oct 2006
Beiträge: 610
BenniG. befindet sich auf einem aufstrebenden Ast
AW: phpMailer Problem, 2 Mail hintereinander können nicht versendet werden

Zur not probier es mal so wie hier (im ersten sample)
http://phpmailer.sourceforge.net/extending.html

vielleicht kannst du deine variable global machen und nur beim ersten Aufruf der Funktion eine Instanz des PHP-Mailers erstellen:
PHP-Code:
FUNCTION phpmailer$email_recipient$email_subject$email_body$email_altbody )
{
    global 
$mailer;
    if (!isset(
$mailer)) {
        
ini_set("include_path""D:/Programme/xampp/htdocs/berechtigung/phpmailer/");
        require(
"class.phpmailer.php");
    
#$mail->SetLanguage("de", "/language/");
        
$mailer                 = new PHPMailer();
        
// weitere intialisierung
    

Nach dem Senden machst du dann ClearAddresses und ClearAttachments..
Wenn Du eine eigene Klasse hast kannst du die phpMailer-Instanz auch in deinem Konstruktor erzeugen, das wäre sauberer, als hier mit globalen Variablen zu arbeiten..
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Mail wird nicht mehr mit PHPmailer versendet BenjaminG PHP Grundlagen 3 31.07.2005 19:55:37
Mail Template Problem pixelartist PHP für Fortgeschrittene und Experten 1 20.10.2004 13:40:25
Problem mit HTML E-Mail und mail() Wauzy PHP für Fortgeschrittene und Experten 4 21.09.2004 23:04:48
Problem mit mail() bueli PHP für Fortgeschrittene und Experten 1 17.12.2002 17:35:39
Mail Funktions Problem Killerattacks PHP für Fortgeschrittene und Experten 0 21.02.2002 21:32:58


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:55:58 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.


© 2001-2014 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt