Mailen mit smtp_auth

Hallo,
der Anbieter meines Webservers hat den Server so umgestellt, dass man nicht mehr mit mail() von einer Seite aus Mails verschicken kann. Sie sagen, ich soll auf smpt_auth umstellen. Hat wohl was mit der Abwehr von SPAM zu tun.
Habe dieses Beispielscript gefunden:

<?php require_once "Mail.php";
$from = "Sandra Sender ";
$to = "Ramona Recipient ";
$subject = "Hi!";
$body = "Hi,\n\nHow are you?";

$host = "mail.example.com";
$username = "smtp_username";
$password = "smtp_password";

$headers = array ('From' => $from,
'To' => $to,
'Subject' => $subject);
$smtp = Mail::factory('smtp',
array ('host' => $host,
'auth' => true,
'username' => $username,
'password' => $password));

$mail = $smtp->send($to, $headers, $body);

if (PEAR::isError($mail)) {
echo(" " . $mail->getMessage() . " ");
} else {
echo(" Message successfully sent! ");
}
?>

Das muss ich ja nun an meine Gegebenheiten anpassen. Aber was hat es denn mit dem require_once "Mail.php" auf sich?
Habe mir durchgelesen, was require_once bewirkt. Aber was soll in der Datei stehen, die hier einmalig eingebunden wird?

Wäre schön, wenn mir jemand das erklären könnte.

Beste Grüße
Karen
> <?php : require_once "Mail.php";<br />




> $smtp = Mail::factory('smtp',  
> array ('host' =\> $host,  
> 'auth' =\> true,  
> 'username' =\> $username,  
> 'password' =\> $password));  
>   
> $mail = $smtp-\>send($to, $headers, $body);  
>   
> if (PEAR::isError($mail)) {  
> echo(" " . $mail-\>getMessage() .  
> " ");  
> } else {  
> echo(" Message successfully sent! ");  
> }  
> ?\>

Das muss ich ja nun an meine Gegebenheiten anpassen. Aber was
hat es denn mit dem require_once „Mail.php“ auf sich?

wahrscheinlich sollte die Mail.php die jenige aus dem Pear::Mail http://pear.php.net/manual/en/package.mail.mail.php paket sein darin ist die Mail-Klasse definiert, die in „$smtp = Mail::factory“ instanziiert wird.

Hallo Jörg,
dann müßte das also eine Datei sein, die sich bereits auf dem Server befindet?

Ich habe das Script einfach mal nach der Anpassung der restlichen Größen laufen lassen und bekomme diese Fehlermeldungen:

Warning: Mail_smtp::include_once(Net/SMTP.php) [function.Mail-smtp-include-once]: failed to open stream: No such file or directory in /usr/share/php/Mail/smtp.php on line 157

Warning: Mail_smtp::include_once() [function.include]: Failed opening ‚Net/SMTP.php‘ for inclusion (include_path=’.:/usr/share/php:/usr/share/pear’) in /usr/share/php/Mail/smtp.php on line 157

Fatal error: Class ‚Net_SMTP‘ not found in /usr/share/php/Mail/smtp.php on line 159

Deute ich das richtig, dass es die Mail.php dort nicht gibt bzw. sie nicht das enthält, was sie enthalten sollte?

Gruß Karen

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Das muss ich ja nun an meine Gegebenheiten anpassen. Aber was
hat es denn mit dem require_once „Mail.php“ auf sich?

wahrscheinlich sollte die Mail.php die jenige aus dem
Pear::Mail http://pear.php.net/manual/en/package.mail.mail.php
paket sein darin ist die Mail-Klasse definiert, die in „$smtp
= Mail::factory“ instanziiert wird.

Hallo Jörg,
dann müßte das also eine Datei sein, die sich bereits auf dem
Server befindet?

wenn auf dem server ein pear-repository gepflegt wird sollten die module da sein.

Ich habe das Script einfach mal nach der Anpassung der
restlichen Größen laufen lassen und bekomme diese
Fehlermeldungen:

Warning: Mail_smtp::include_once(Net/SMTP.php)
[function.Mail-smtp-include-once]: failed to open stream: No
such file or directory in /usr/share/php/Mail/smtp.php on line
157

mail_smtp versucht net/smtp.php zu includen, findet aber die datei nicht - der fehler tritt in
/usr/share/php/Mail/smtp.php - das ist schon das pear::mail-paket - also wird auf dem server bereits ein pear-verzeichnis gepflegt, du koenntest deinen provider bitten pear::net::smtp nach zuinstallieren.

Deute ich das richtig, dass es die Mail.php dort nicht gibt
bzw. sie nicht das enthält, was sie enthalten sollte?

wie oben gesagt: pear::mail scheint ok, pear::net::smtp fehlt. wahrscheinlich fehlen dann noch mehr net-abhaengigkeiten.

ich verlasse mich bei meinen projekten ungern auf den server - man weiss ja nie :smile: - und pflege dann jeweils meinen eigenen pear pool:

//definierter pear path fuer versions konflikte
set\_include\_path("meinpear/" . PATH\_SEPARATOR . get\_include\_path() );
//

meinpear waere ein verzeichnis in meinem webspace und dahinein entpacke ich die pakete. durch das setzen des include pathes sollten die pear module dann alle abhaengigkeiten finden.

Hallo Jörg,
entschuldige die späte Antwort, aber meine Arbeitszeiten sind etwas unregelmäßig zur Zeit.
Ich glaube, dass mit dem eigenen Verzeichnis wäre auch das beste in diesem Fall. Ich habe das Paket heruntergeladen und die tgz.-Datei via FTP in ein entsprechendes Verzeichnis kopiert, aber leider weiss ch nicht, wie ich die jetzt dort entpacken kann. Kannst Du mir da einen Tip geben?

Beste Grüße
Karen

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]