mailen mit smtp_auth

Von: , Frage gestellt am So, 25. Mai 2008

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 <[E-Mail-Adresse entfernt]>";
$to = "Ramona Recipient <[E-Mail-Adresse entfernt]>";
$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("<p>" . $mail->getMessage() . "</p>");
} else {
echo("<p>Message successfully sent!</p>");
}
?>

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

4 Antworten zu dieser Frage

  1. Antwort von nach 23 Minuten 0 hilfreich
    Re: mailen mit smtp_auth

    
    :    <?php
    
    :    require_once "Mail.php";
    
    :
    
    
    :    $smtp = Mail::factory('smtp',
    
    :      array ('host' => $host,
    
    :        'auth' => true,
    
    :        'username' => $username,
    
    :        'password' => $password));
    
    :
    
    :    $mail = $smtp->send($to, $headers, $body);
    
    :
    
    :    if (PEAR::isError($mail)) {
    
    :      echo("<p>" . $mail->getMessage() .
    
    :"</p>");
    
    :     } else {
    
    :      echo("<p>Message successfully sent!</p>");
    
    :     }
    
    :    ?>
    
    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.

    • Antwort von nach 55 Minuten 0 hilfreich
      Re^2: mailen mit smtp_auth

      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]

      • Antwort von nach einer Stunde 0 hilfreich
        Re^3: mailen mit smtp_auth

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

        • Antwort von nach 9 Tagen 0 hilfreich
          Re^4: mailen mit smtp_auth

          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]

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!