php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 06.12.2011, 09:29  
Benutzer
 
Registriert seit: 27.08.2010
Beiträge: 32
PHP-Kenntnisse:
Anfänger
Madenar76 befindet sich auf einem aufstrebenden Ast
Standard E-Mail-Versand bricht ab

Hallo @all,

ich habe ein echtes Problem und weiss nicht mehr weiter. Ich habe eine Datenbank mit ca. 4000 Datensätzen, wobei für jeden Datensatz eine Rechnung via pdf geschrieben werden muss.

Das Script, welches ich geschrieben hat macht das auch sehr gut, also Datensatz auslesen -> PDF erstellen -> PDF per Mail verschicken -> nach Versand die PDF-Datei vom Server Löschen.

Allerdings sendet das Script nach ca 250 Mails, keine Mail mehr raus, die PDF's werden ab weiter fleissig auf dem Server erstellt erstellt.

Ich habe das Script auch so gebaut, das ich nicht alle 4000 Datensätze in ein Array lade, da es sonst zu Laufzeitproblemen kommen könnte, sondern jeder Datensatz separat und das Script dann über einen refresh neu geladen wird um den nächsten Datensatz zu verarbeiten siehe hier:
PHP-Code:
<meta http-equiv="refresh" content="0;url=http://www.hb-verwaltung.de/index2.php?content=2"
Hat jemand eine Ahnung woran das liegen könnte?

hier mal noch der Bereich welcher für das Versenden der E-Mail zuständig ist:

PHP-Code:
// PDF per E-mail versenden

$empfaenger "$bmaoil"// Empfänger E-Mail Adresse
$betreff "Ihre Rechnung $rgnr"// Betreff

$dateiname "$file_name"// Dateiname
$dateiname_mail "$file_name";
$bodytext utf8_decode("STest");

$id md5(uniqid(time()));
$dateiinhalt fread(fopen($dateiname"r"), filesize($dateiname));

 
// Absender Name und E-Mail Adresse
$kopf "From: TEst <rechnung@test>\n";
$kopf .= "MIME-Version: 1.0\n";
$kopf .= "Content-Type: multipart/mixed; boundary=$id\n\n";
$kopf .= "This is a multi-part message in MIME format\n";
$kopf .= "--$id\n";
$kopf .= "Content-Type: text/plain\n";
$kopf .= "Content-Transfer-Encoding: 8bit\n\n";
$kopf .= "$bodytext"// Inhalt der E-Mail (Body)
$kopf .= "\n--$id";
// Content-Type: image/gif, image/jpeg, image/png » MIME-Typen - selfHtml.org
$kopf .= "\nContent-Type: image/gif; name=$dateiname_mail\n";
$kopf .= "Content-Transfer-Encoding: base64\n";
$kopf .= "Content-Disposition: attachment; filename=$dateiname_mail\n\n";
$kopf .= chunk_split(base64_encode($dateiinhalt));
$kopf .= "\n--$id--";
mail($empfaenger$betreff""$kopf); // E-Mail versenden 
Danke für eure Hilfe schon einmal im vorraus.

Madenar
Madenar76 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 06.12.2011, 09:33  
Erfahrener Benutzer
 
Benutzerbild von wolf29
 
Registriert seit: 17.03.2010
Beiträge: 1.833
PHP-Kenntnisse:
Fortgeschritten
wolf29 wird schon bald berühmt werdenwolf29 wird schon bald berühmt werden
Standard

Jep, du arbeitest mit mail() und nicht mit einer Mailerklasse! Schau mal hier: http://www.robo47.net/text/38-Mail-ist-tot-es-lebe-mail -> ich kann Dir den Swiftmailer empfehlen.

mfg wolf29
__________________
while (!asleep()) sheep++;

Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.
wolf29 ist offline   Mit Zitat antworten
Alt 06.12.2011, 12:39  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

wahrscheinlich ist der Grund ganz banal ... der Postserver deines Hosters (?) erkennt, dass da eine der Domains auf einen Schlag 4000 Mails senden will (deren Header wahrscheinlich nicht ganz einwandfrei sind (mit der mail()-Funktion kannst du eigentlich die RFC gar nicht alle einhalten) und blockiert dann wegen SPAM-Verdacht .... die Grenze von 250 Mails bestätigt meine Ansicht ... das scheint der Schwellwert für Spam-Erkennung zu sein ...

Versende einfach nicht so viele Mails auf 1 Schlag
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Alt 07.12.2011, 14:36  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

Die Einzelverarbeitung per Meta Refresh ist Unsinn.

Du kannst die 4000 Mails auf einen Schwung an deinen Mailserver übergeben. Mit PHPmailer z.B. so:
PHP-Code:
require("class.phpmailer.php");
$mail = new PHPMailer();
$mail->From     $absender;
$mail->FromName $absendername;
$mail->AddReplyTo($absender);
$mail->Sender $bounceadresse;



// SELECT email FROM user
// mysql_query...
// while ( $row ... ) {

   
$mail->AddAddress($email);
   
$mail->Subject $subject;
   
$mail->Body $message_text;

   
$mail->AddAttachment('rechnung.pdf','rechnung.pdf');
   
$mail->Send();

   
$mail->ClearAttachments(); 
   
$mail->ClearAddresses();

// } Ende schleife while ... 
Ggf. mit deinem Server-Administrator sprechen und nach Fehlerlogs fragen.
__________________
Warum denkt mein Hund eigentlich immer dann, wenn es an der Tür klingelt, es sei für ihn?
Wolla ist offline   Mit Zitat antworten
Alt 07.12.2011, 18:20  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
wobei für jeden Datensatz eine Rechnung via pdf geschrieben werden muss.

Das Script, welches ich geschrieben hat macht das auch sehr gut, also Datensatz auslesen -> PDF erstellen -> PDF per Mail verschicken -> nach Versand die PDF-Datei vom Server Löschen.
Mal so am Rande:
1. Rechnungen, die zum Vorsteuerabzug berechtigen, müssen eine qualifizierte elektronische Signatur besitzen
2. Ebenso müssen diese Rechnungen in einem revisionssicheren Prozess erzeugt, gespeichert und aufbewahrt werden.

Im aktuellen Verfahren kannst Du Dir das PDF also schlichtweg sparen.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 07.12.2011, 22:36  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

Wir schreiben an alle Kunden Rechnungen per PDF und mailen sie diesen zu. Diese drucken sich das aus und fertig.
Darunter ist auch ein namhaftes Unternehmen mit mehreren tausend Beschäftigten. So komplett falsch kann das also nicht sein.
Wir drucken uns das auch aus und heften es für die Fibu ab. So haben beide Seiten Papierrechnungen, nur das Porto und der Weg zur Post ist gespart.
__________________
Warum denkt mein Hund eigentlich immer dann, wenn es an der Tür klingelt, es sei für ihn?
Wolla ist offline   Mit Zitat antworten
Alt 07.12.2011, 22:46  
Benutzer
 
Registriert seit: 27.03.2006
Beiträge: 60
PHP-Kenntnisse:
Anfänger
Dadelu ist in Verruf geraten
Standard

Zitat:
Zitat von Wolla Beitrag anzeigen
Darunter ist auch ein namhaftes Unternehmen mit mehreren tausend Beschäftigten. So komplett falsch kann das also nicht sein.
Das empfangen einer digitalen Rechnung inkl. Ausdruck ist ja auch nicht das Problem. Der Hinweis war ja eher aus deiner Sicht aus...

Und wegen dem Problem, ich kann mich nur eagle275 anschliessen, riecht verdächtig nach Spam Filter....
Dadelu ist offline   Mit Zitat antworten
Alt 07.12.2011, 22:52  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Es ist nicht statthaft. Wenn diese Unternehmen noch keine Betriebsprüfung hatten oder die Prüfer dort nachsichtig waren, haben sie Glück gehabt. Möglicherweise wird das zukünftig noch gelockert.

Wohl gemerkt, die Relevanz ergibt sich nur für Leute, die eine Rechnung für die Steuer o.ä. brauchen. Dann ist entweder eine Papierrechnung gültig oder ein PDF, das mit qualifizierter elektronischer Signatur versendet und zusammen mit der Bestätigung der signaturausstellenden Stelle abgelegt wurde.

So wurde mir das mehrfach bestätigt. Wenn man nicht gerade Systeme wie DATEV benutzt, ist eine solche zertifizierte und revisionssichere Speicherung aber so gut wie unmöglich mit Hausmitteln hinzubekommen.

http://de.wikipedia.org/wiki/Qualifi...ische_Signatur
Zitat:
In Deutschland verlangt § 14 UStG eine qualifizierte elektronische Signatur auf elektronisch übermittelten Rechnungen. Andernfalls ist das rechnungserhaltende Unternehmen nicht zum Abzug der Vorsteuer berechtigt. Eine Archivierung der elektronisch übermittelten Rechnung in elektronischer Form ist Pflicht, d.h. ein ausschließliches Archivieren des Ausdrucks ist damit nicht erlaubt und berechtigt nicht zum Vorsteuerabzug. In Papierform erhaltene und erst dann gescannte Rechnungen sind jedoch ohne qualifizierte elektronische Signatur archivierbar. Der Scanvorgang muss jedoch protokolliert werden.
Hirnrissig aber aktuelle Rechtslage. ePost und Konsorten ändern daran btw. auch nichts.

[edit]

Ergänzung: Warum ich das hier angeführt habe - ein Kunde hat ein Anrecht auf eine ordnungsgemäße (also auch zur Vortsteuer geeignete) Rechnung. Elektonischer Versand normaler PDFs ist unproblematisch, solange der Versender das Einverständnis der Kunden besitzt. Das machen auch namhafte Firmen wie diverse ISPS/Telefonanbieter so. Zumindest bis vor einer Weile war das noch so.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 08.12.2011, 08:03  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

tja Nikosch ... diesmal liegst du falsch - die obersten Gerichte und der Gesetzgeber haben explizit dieses Jahr beschlossen und bestätigt, das eben genau KEINE qualifizierte elektronische Signatur für eine Rechnung benötigt wird ...
http://www.heise.de/ix/meldung/Schwe...r-1349623.html

Stichwort "Steuervereinfachungsgesetz"

korrekt ist aber, dass du die erstellten Rechnungen mindestens im Rahmen der "Finanzamt-Frist" aufbewahren musst - das schließt eine ordentliche Archivierung ein .. und garantiert KEIN Löschen innerhalb von 10 Jahren
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Alt 08.12.2011, 18:56  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Und gleich mal dem Link gefolgt.

Zitat:
Der Rechnungsaussteller ist nunmehr - vorbehaltlich der Zustimmung des Rechnungsempfängers zur elektronischen Übermittlung der Rechnung - frei in seiner Entscheidung, in welcher Weise er elektronische Rechnungen übermittelt (z.B. per E-Mail). Die Echtheit der Herkunft, die Unversehrtheit des Inhalts und die Lesbarkeit der Rechnung können durch jegliches innerbetriebliches Kontrollverfahren gewährleistet werden, das einen verlässlichen Prüfpfad zwischen Leistung und Rechnung herstellen kann. Die Verwendung einer qualifizierten elektronischen Signatur, einer qualifizierten elektronischen Signatur mit Anbieter-Akkreditierung oder eines elektronischen Datenaustauschverfahrens (EDI) ist für die elektronische Übermittlung einer Rechnung nur noch optional und nicht mehr verpflichtend.
So, dann nenn mir mal ein praktisch durchführbares Verfahren, dass eine solche Beweislast sicherstellen kann. Mag ja sein, dass der rechtliche Zwang zur QualSig gefallen ist, praktische Bewandnis hat das deswegen noch lange nicht. Alleine wenn man sich rechtliche Anforderungen an eine elektronische Rechnungslegung ansieht, bekommt man eine Ahnung, was hier vorausgesetzt sein wird.
Meines Wissens erwartet das FA nämlich bei elektronischer RL auch eine elektronische Archivierung, die dann wiederum revisionssicher zu erfolgen hat. Und das gilt dann auch für den E-Mail-Verkehr, was wiederum Probleme mit der Vollständigkeit der Archivierung vs. Spamfilter vs. private E-Mails vs. Datenschutz nach sich zieht.

http://de.wikipedia.org/wiki/Elektronische_Archivierung
http://de.wikipedia.org/wiki/E-Mail-Archivierung
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

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

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] PHP mail() sorgt für Interal Server Error AXELB Server, Hosting und Workstations 1 18.04.2011 23:16
[Erledigt] mail() mit &lt;a herf... Link in Html Mail geht nicht!? BettinaSyn PHP Tipps 2009 11 16.05.2009 22:28
[Erledigt] Mail Versand mit Attachment ohne &quot;php mail&quot; Funktion kayamoto PHP-Fortgeschrittene 4 11.05.2009 08:58
[Erledigt] Mail() und polnischer Text UTF8 verändert Sonderzeichen Wolla PHP Tipps 2008 3 21.08.2008 00:10
dateien aus verzeichnis einzeln als mail attachment versenden mathes PHP Tipps 2008 5 17.07.2008 19:45
mail() an web und gmx kampfnickel PHP Tipps 2008 12 23.09.2007 00:03
Unterschied zwischen mail() und popen(/usr/sbin/sendmail)... DonTermi PHP Tipps 2007 8 27.03.2007 13:25
Funktion Mail() verwenden bendigo PHP Tipps 2006 2 05.05.2006 11:44
mail() und boundary Problem Gef PHP Tipps 2006 4 02.03.2006 00:47
Mail mit mail() kommt nicht an center PHP Tipps 2005-2 5 18.08.2005 13:02
Mit der PHP mail() Funktion eine HTMl mail verschicken? PHP Tipps 2005 6 09.05.2005 07:13
php mail() header &amp;amp;amp;amp;amp;amp; Spam Problem PHP-Fortgeschrittene 4 04.05.2005 12:31
[Erledigt] Error Mail() function PHP Tipps 2005 3 14.04.2005 03:32
Mail versenden - Fehler 553 Anuschka PHP Tipps 2004-2 7 13.12.2004 19:54
mail() - mail header PHP-Fortgeschrittene 2 28.09.2004 15:35

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
pdf einverständniserklärung per mail datev, mail für jeden datensatz verschicken php

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:28 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum