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

SELFPHP


Professional CronJob-Service

Suche



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



:: Buchempfehlung ::

TYPO3 Kochbuch

TYPO3 Kochbuch zur Buchempfehlung
 

:: 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:
 
 

Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten
Hilfe Community Kalender Heutige Beiträge Suchen

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

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 24.01.2004, 14:12:43
didi86 didi86 ist offline
Anfänger
 
Registriert seit: Dec 2003
Beiträge: 77
SMTP Server bei E-Mails definieren. / Am Mailserver anmelden (Authentifizierung)

Ich möchte ein PHP Script schreiben mit dem ich automatisiert eine E-Mail verschicken kann. Wie kann ich dabei selbst den SMTP-Server definieren, ohne dass ich Zugrif auf php.ini habe?

Geändert von didi86 (24.01.2004 um 19:12:52 Uhr)
Mit Zitat antworten
  #2  
Alt 24.01.2004, 16:32:11
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
Re: SMTP Server bei E-Mails definieren.

Zitat:
Original geschrieben von didi86
Wie kann ich dabei selbst den SMTP-Server definieren, ohne dass ich Zugrif auf php.ini habe?
Es geht (salopp ausgedrückt) nur dann mit mail(), wenn der MTA auf der gleichen Kiste wohnt und Du dort einen Systemaccount hast. Dann kennt Dich sendmail/postfix/qmail und schickt Deine Mail weg. Wenn er Dich nicht kennt, schickt der MTA ggf. die Mail auch weg. In beiden Fällen haben die emails einen falschen Absender und Return-path im envelope, den man in einer lokalen php.ini (CGI) oder in Deinem virtualhost (httpd.conf; mod_php) setzen kann. Darauf reagieren viele potentielle "Empfänger-MTA" allergisch und betrachten solche Emails als SPAM. In dem Falle mußt Du Dir eine Mailklasse besorgen, die mail() ersetzt und in der Lage ist, sich per SMTP-Auth u/o SMTP-after-POP bei dem MTA korrekt vorzustellen, bei dem Du ein Postfach hast.

Geändert von meikel (†) (24.01.2004 um 16:35:17 Uhr)
Mit Zitat antworten
  #3  
Alt 24.01.2004, 17:08:41
didi86 didi86 ist offline
Anfänger
 
Registriert seit: Dec 2003
Beiträge: 77
Re: Re: SMTP Server bei E-Mails definieren.

Zitat:
Original geschrieben von meikel
Es geht (salopp ausgedrückt) nur dann mit mail(), wenn der MTA auf der gleichen Kiste wohnt und Du dort einen Systemaccount hast. Dann kennt Dich sendmail/postfix/qmail und schickt Deine Mail weg. Wenn er Dich nicht kennt, schickt der MTA ggf. die Mail auch weg. In beiden Fällen haben die emails einen falschen Absender und Return-path im envelope, den man in einer lokalen php.ini (CGI) oder in Deinem virtualhost (httpd.conf; mod_php) setzen kann. Darauf reagieren viele potentielle "Empfänger-MTA" allergisch und betrachten solche Emails als SPAM. In dem Falle mußt Du Dir eine Mailklasse besorgen, die mail() ersetzt und in der Lage ist, sich per SMTP-Auth u/o SMTP-after-POP bei dem MTA korrekt vorzustellen, bei dem Du ein Postfach hast.
Kann man nicht den Absender bzw. Return-Path auch direkt im Header der Mail ändern:
PHP-Code:
headers="From: " $absender;
mail($adresse$betreff$nachricht$headers); 
Mein Problem ist, dass der Postausgangsserver, der in php.ini definiert ist nicht zuverlässig funktioniert und ich keinen Zugriff auf die php.ini des Servers habe.

Geändert von didi86 (24.01.2004 um 17:11:02 Uhr)
Mit Zitat antworten
  #4  
Alt 24.01.2004, 19:10:43
didi86 didi86 ist offline
Anfänger
 
Registriert seit: Dec 2003
Beiträge: 77
Ich bin ein bisschen weiter gekommen: mit ini_set() lassen sich Parameter der php.ini für das aktuelle Script ändern:
PHP-Code:
ini_set("sendmail_from",$absender);
ini_set("SMTP",$mailserver);
$header="From: $absender<$absender>n";
$header .= "Reply-To: $absendern";
mail($email$subject$message$header); 
Mein Problem jetzt ist nur, dass mein SMTP-Server Authentifizierung erfordert. Das heißt, das das obige Script folgende Fehlermeldung liefert:
Warning: mail(): SMTP server response: 530 Authentication required
Mit Zitat antworten
  #5  
Alt 24.01.2004, 19:56:47
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
Zitat:
Original geschrieben von didi86
Mein Problem jetzt ist nur, dass mein SMTP-Server Authentifizierung erfordert.
Wenn ich mich noch mal zitieren darf: "In dem Falle mußt Du Dir eine Mailklasse besorgen, die mail() ersetzt und in der Lage ist, sich per SMTP-Auth u/o SMTP-after-POP bei dem MTA korrekt vorzustellen, bei dem Du ein Postfach hast."

OK?
Mit Zitat antworten
  #6  
Alt 24.01.2004, 20:42:00
didi86 didi86 ist offline
Anfänger
 
Registriert seit: Dec 2003
Beiträge: 77
Zitat:
Original geschrieben von meikel
Wenn ich mich noch mal zitieren darf: "In dem Falle mußt Du Dir eine Mailklasse besorgen, die mail() ersetzt und in der Lage ist, sich per SMTP-Auth u/o SMTP-after-POP bei dem MTA korrekt vorzustellen, bei dem Du ein Postfach hast."

OK?
Aber was so eine Mailklasse macht muss doch auch so möglich sein. Die Mailklasse ist doch auch nur in PHP geschrieben...
Mit Zitat antworten
  #7  
Alt 24.01.2004, 21:13:09
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
Zitat:
Original geschrieben von didi86
[B]Aber was so eine Mailklasse macht muss doch auch so möglich sein.
Die Mailklasse ist doch auch nur in PHP geschrieben...
"Ja sischer." Aber die Mailklasse emuliert, wenn gewünscht, einen MUA, der sich bei SMTP oder POP3 mit Login und Paßwort vorstellt, damit er seine Post loswird, was die Funktion mail() immer noch nicht kann. Bei mail() mußt Du ja schon Bocksprünge veranstalten, um einen Absender auf den Brief zu kriegen.
Mit Zitat antworten
  #8  
Alt 24.01.2004, 21:35:33
didi86 didi86 ist offline
Anfänger
 
Registriert seit: Dec 2003
Beiträge: 77
Ich habe auf

http://www.faqts.com/knowledge_base/...id/9820/fid/21

eine Lösung gefunden:

PHP-Code:
<?php
$smtp_server 
"smtp.acme.com";
$port 25;
$mydomain "acme.com";
$username "user"// MS Exchange servers will probably require a valid NT domain name as part of the username.  E.g., "ntdomainuser"
$password "password";
$sender "me@acme.com";
$recipient "joe@company.com";
$subject "test";
$content "test";

// Initiate connection with the SMTP server
$handle fsockopen($smtp_server,$port);
fputs($handle"EHLO $mydomainrn");

// SMTP authorization
fputs($handle"AUTH LOGINrn");
fputs($handlebase64_encode($username)."rn");
fputs($handlebase64_encode($password)."rn");

// Send out the e-mail
fputs($handle"MAIL FROM:<$sender>rn");
fputs($handle"RCPT TO:<$recipient>rn");
fputs($handle"DATArn");
fputs($handle"To: $recipientn");
fputs($handle"Subject: $subjectnn");
fputs($handle"$contentrn");
fputs($handle".rn");

// Close connection to SMTP server
fputs($handle"QUITrn");
?>
Mit Zitat antworten
  #9  
Alt 24.01.2004, 23:19:00
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
Zitat:
Original geschrieben von didi86
[B]Ich habe auf
(link)
eine Lösung gefunden:
Erzähl lieber, ob's geklappt hat, weil nicht jeder MTA SMTP Auth beherrscht. Viele bevorzugen SMTP-after-POP. Da muß einmal kurz der Briefkasten (ginge mit den IMAP_* Funktionen) aufgemacht werden. Dann speichert die Kiste für paar Min. Deine IP und Du kannst in dem Fenster die Mail loswerden.
Mit Zitat antworten
  #10  
Alt 24.01.2004, 23:27:49
didi86 didi86 ist offline
Anfänger
 
Registriert seit: Dec 2003
Beiträge: 77
Zitat:
Original geschrieben von meikel
Erzähl lieber, ob's geklappt hat, weil nicht jeder MTA SMTP Auth beherrscht. Viele bevorzugen SMTP-after-POP. Da muß einmal kurz der Briefkasten (ginge mit den IMAP_* Funktionen) aufgemacht werden. Dann speichert die Kiste für paar Min. Deine IP und Du kannst in dem Fenster die Mail loswerden.
Bei mir hat es geklappt!
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

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


Alle Zeitangaben in WEZ +2. Es ist jetzt 03:11:23 Uhr.


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


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