• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

php mail returns true, jedoch kommt die mail nicht an.

Phibedy

Neues Mitglied
Hi,
nachdem ich ein loginsystem für eine app geschrieben habe, möchte ich nun gerne eine email zur bestätigung an die Adresse des Users schicken, jedoch scheint dies schwieriger als gedacht ;ugl

PHP:
<html>    <head>        <title>PHP mail() test</title>    </head>    <body>
        <?php>                $boundary = uniqid('np');                   $headers = "MIME-Version: 1.0\r\n";         $headers .= "From: Phibedy <[email protected]>\r\n";
         $headers .= "Subject: Test Message\r\n";         $headers .= "Content-Type: multipart/alternative;boundary=" . $boundary . "\r\n";
         $to = "[email protected]";
         $subject = "Test Message";
         
         $message = "This is a MIME encoded message.";                   $message .= "\r\n\r\n--" . $boundary . "\r\n";         $message .= "Content-type: text/plain;charset=utf-8\r\n\r\n";         $message .= "This is the text/plain version.";
         $message .= "\r\n\r\n--" . $boundary . "\r\n";         $message .= "Content-type: text/html;charset=utf-8\r\n\r\n";         $message .= "This is the <b>text/html</b> version.";
         $message .= "\r\n\r\n--" . $boundary . "--";
                if(mail($to,$subject,$message)){        echo "email successfully sent";
        }        ?>    </body></html>

php.ini
Code:
[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = localhost
; http://php.net/smtp-port
smtp_port = 25

; For Win32 only.
; http://php.net/sendmail-from
;sendmail_from = [email protected]

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
;sendmail_path = /usr/local/bin/phpsendmail
default: "sendmail -t -i"

; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail(), even in safe mode.
;mail.force_extra_parameters =

; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename
mail.add_x_header = On

; Log all mail() calls including the full path of the script, line #, to address and headers
;mail.log =

logs:
Code:
############
//mail.info
############
Mar  3 11:58:47 Debian-60-squeeze-64-LAMP qmail-queue-handlers[13954]: Handlers Filter before-queue for qmail started ...
Mar  3 11:58:47 Debian-60-squeeze-64-LAMP qmail-queue-handlers[13954]: from[URL="http://piratepad.net/ep/[email protected]"][email protected][/URL]
Mar  3 11:58:47 Debian-60-squeeze-64-LAMP qmail-queue-handlers[13954]: to[URL="http://piratepad.net/ep/[email protected]"][email protected][/URL]


############
//mail.log
############
Mar  3 11:58:47 Debian-60-squeeze-64-LAMP qmail-queue-handlers[13954]: Handlers Filter before-queue for qmail started ...
Mar  3 11:58:47 Debian-60-squeeze-64-LAMP qmail-queue-handlers[13954]: from[URL="http://piratepad.net/ep/[email protected]"][email protected][/URL]
Mar  3 11:58:47 Debian-60-squeeze-64-LAMP qmail-queue-handlers[13954]: to[URL="http://piratepad.net/ep/[email protected]"][email protected][/URL]
Mar  3 11:58:47 Debian-60-squeeze-64-LAMP qmail-queue-handlers[13954]: hook_dir = '/opt/psa/handlers/before-queue'
Mar  3 11:58:47 Debian-60-squeeze-64-LAMP qmail-queue-handlers[13954]: recipient[3] = '[email protected]'
Mar   3 11:58:47 Debian-60-squeeze-64-LAMP qmail-queue-handlers[13954]:  handlers dir =  '/opt/psa/handlers/before-queue/recipient/[email protected]'
Mar  3 11:58:47 Debian-60-squeeze-64-LAMP qmail-queue-handlers[13954]: starter: submitter[13956] exited normally

Ich glaube, dass es an meiner dns liegt, dass es fehl schlägt, allerdings komme ich damit nicht so ganz klar und habe das gefühl, dass ich es eher verschlimm-bessere.
liebe Grüße und Danke für die Hilfe :)
 
Werbung:
Du solltest die Mail-Funktion von PHP vergessen und eine fertige Mailer-Klasse w.z.B. den phpMailer nutzen. Dann klappt das auch.
 
danke :)
Es kommt kein error, jedoch kommt die email immer noch nicht an:

php-code:
Code:
<html>
    <head>
        <title>PHP mail() test</title>
    </head>
    <body>
        <?php
            try {
            require_once '/usr/share/php/phpmailer/class.phpmailer.php';
            $mail = new PHPMailer(true);

            $mail->SetFrom('[email protected]', 'First Last');

            $mail->AddReplyTo('[email protected]', 'First Last');

            $address = "[email protected]";
            $mail->AddAddress($address, "tester");

            $mail->Subject    = "PHPMailer Test Subject via mail(), basic";

            $mail->AltBody    = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test

            $mail->Body = "Hallo! \n\n Dies ist die erste Email mit PHPMailer!";

            if(!$mail->Send()) {
              echo "Mailer Error: " . $mail->ErrorInfo;
            } else {
              echo "Message sent!";
            }
            } catch (phpmailerException $e) {
              echo $e->errorMessage();
            } catch (Exception $e) {
              echo $e->getMessage();
            }
        ?>
    </body>
</html>

mail.log:
Code:
Mar  3 14:51:14 Debian-60-squeeze-64-LAMP qmail-queue-handlers[15541]: Handlers Filter before-queue for qmail started ...
Mar  3 14:51:14 Debian-60-squeeze-64-LAMP qmail-queue-handlers[15541]: [email protected]
Mar  3 14:51:14 Debian-60-squeeze-64-LAMP qmail-queue-handlers[15541]: [email protected]
Mar  3 14:51:14 Debian-60-squeeze-64-LAMP qmail-queue-handlers[15541]: hook_dir = '/opt/psa/handlers/before-queue'
Mar  3 14:51:14 Debian-60-squeeze-64-LAMP qmail-queue-handlers[15541]: recipient[3] = '[email protected]'
Mar  3 14:51:14 Debian-60-squeeze-64-LAMP qmail-queue-handlers[15541]: handlers dir = '/opt/psa/handlers/before-queue/recipient/[email protected]'
Mar  3 14:51:14 Debian-60-squeeze-64-LAMP qmail-queue-handlers[15541]: starter: submitter[15543] exited normally

mail.info
Code:
Mar  3 14:51:14 Debian-60-squeeze-64-LAMP qmail-queue-handlers[15541]: Handlers Filter before-queue for qmail started ...
Mar  3 14:51:14 Debian-60-squeeze-64-LAMP qmail-queue-handlers[15541]: [email protected]
Mar  3 14:51:14 Debian-60-squeeze-64-LAMP qmail-queue-handlers[15541]: [email protected]

Schonmal danke für weitere Tipps und Ratschläge :)
 
Zuletzt bearbeitet:
Werbung:
Werbung:
Es klingt zwar jetzt wirklich einwenig blöd, aber woher krieg ich den Nutzernamen / pw?
Ich hatte früher plesk, welches das alles für mich übernommen hat. Da ich nun aber den server kaum benötige wollte ich mir die kosten sparen und stehe jetzt da wie der Ochs vorm Berg :).
smtp liefert mir ja an sich noch keinen nutzernamen und pw. Muss ich dazu noch squirrelmail oder etwas in der Art installieren? Wenn ja, was würdet ihr mir empfehlen?
liebe Grüße
 
Wenn Du ein E-Mail-Konto bei einem Provider hast, erhältst Du sowohl Nutzername als auch Passwort.

Wenn Du selbst einen Mail-MTA hast, musst Du darin ein E-Mail-Konto anlegen und dabei Nutzername und Passwort vergeben. Da Du offenbar einen Plesk-Server hast, wirst Du darin ggfs. auch E-Mail-Konten verwalten können. Voraussetzung, dass das funktioniert ist, dass die Domain des E-Mail-Kontosim MX-Record des DNS auch auf deinen Server zeigt.

Hinweis: Oft ist Nutzername gleich der E-Mail-Adresse.
 
danke, habe nun einen mailserver installiert. Nur kommen die mails leider nicht bei gmx sondern nur bei googlemail an.
liebe Grüße
 
Werbung:
In den Logfiles des Mailservers sollte ersichtlich sein wie die anderen Server auf die E-Mail reagiert haben. Daran sollte man auch erkennen was mit den E-Mails passiert ist. Bei Linux liegen diese meist unter /var/log/.
 
EDIT:
Da die antwort durch die ganzen Logs nun schon fast zulange geworden ist, habe ich es in 1. 2. und 3. unterteilt.
schonmal danke für die Hile :)
Die Einstellungen für smtp etc. habe ich diesem tut entnommen: http://wyden.com/linux/mailserver/mailserver-mit-postfix-dovecot-postfixadmin-und-mysql-debian-etch

1. nein, ist nur meine spam-mail, auch bei nem Freund kommt sie nur auf gmail an und nicht auf gmx. Eine mögliche Lösung wäre vll: http://www.huschi.net/4_111_de.html
allerdings bin ich mir dabei nicht sicher und möchte es ungerne verschlimmbessern.
log:
Code:
Mar  5 22:15:13 Debian-60-squeeze-64-LAMP postfix/smtpd[24050]: connect from localhost[127.0.0.1]
Mar  5 22:15:13 Debian-60-squeeze-64-LAMP postfix/smtpd[24050]: 43426FC3DE: client=localhost[127.0.0.1]
Mar  5 22:15:13 Debian-60-squeeze-64-LAMP postfix/cleanup[24054]: 43426FC3DE: message-id=<20130305211513.43426FC3DE@Debian-60-squeeze-64-LAMP>
Mar  5 22:15:13 Debian-60-squeeze-64-LAMP postfix/qmgr[23042]: 43426FC3DE: from=<[email protected]>, size=519, nrcpt=1 (queue active)
Mar  5 22:15:13 Debian-60-squeeze-64-LAMP postfix/smtpd[24050]: disconnect from localhost[127.0.0.1]
Mar  5 22:15:13 Debian-60-squeeze-64-LAMP postfix/smtp[24055]: 43426FC3DE: to=<[email protected]>, relay=mx00.gmx.net[213.165.67.114]:25, delay=0.09, delays=0.02/0/0.06/0, dsn=5.0.0, status=bounced (host mx00.gmx.net[213.165.67.114] refused to talk to me: 501 Syntax error in parameters or arguments)
Mar  5 22:15:13 Debian-60-squeeze-64-LAMP postfix/cleanup[24054]: 558DDFC3E2: message-id=<20130305211513.558DDFC3E2@Debian-60-squeeze-64-LAMP>
Mar  5 22:15:13 Debian-60-squeeze-64-LAMP postfix/qmgr[23042]: 558DDFC3E2: from=<>, size=2573, nrcpt=1 (queue active)
Mar  5 22:15:13 Debian-60-squeeze-64-LAMP postfix/bounce[24056]: 43426FC3DE: sender non-delivery notification: 558DDFC3E2
Mar  5 22:15:13 Debian-60-squeeze-64-LAMP postfix/qmgr[23042]: 43426FC3DE: removed
Mar  5 22:15:13 Debian-60-squeeze-64-LAMP postfix/smtp[24055]: 558DDFC3E2: to=<[email protected]>, relay=none, delay=0, delays=0/0/0/0, dsn=5.4.6, status=bounced (mail for mineforce.de loops back to myself)
Mar  5 22:15:13 Debian-60-squeeze-64-LAMP postfix/qmgr[23042]: 558DDFC3E2: removed

2. Zudem habe ich noch ein problem mit dem http://phpmailer.worxware.com/index.php?pg=exampleasmtp:
php-code:
PHP:
        <?php
            try {
            require_once '/var/www/phibedy/phpmailer/class.phpmailer.php';
            $mail = new PHPMailer(true);
            
            $mail->IsSMTP(); // telling the class to use SMTP
            
            $mail->Host       = "mail.mineforce.de"; // SMTP server
            $mail->SMTPDebug  = 2;                     // enables SMTP debug information (for testing)
            $mail->SMTPAuth   = true;                  // enable SMTP authentication
            $mail->Host       = "mail.mineforce.de"; // sets the SMTP server
            $mail->Port       = 25;                    // set the SMTP port for the GMAIL server
            $mail->Username   = "postfix@mineforce"; // SMTP account username
            $mail->Password   = "pw";        // SMTP account password
              
            $mail->SetFrom('[email protected]', 'First Last');

            $mail->AddReplyTo('[email protected]', 'First Last');

            $address = "[email protected]";
            $mail->AddAddress($address, "tester");

            $mail->Subject    = "PHPMailer Test Subject via mail(), basic";

            $mail->AltBody    = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test

            $mail->Body = "Hallo! \n\n Dies ist die erste Email mit PHPMailer!";

            if(!$mail->Send()) {
              echo "Mailer Error: " . $mail->ErrorInfo;
            } else {
              echo "Message sent!";
            }
            } catch (phpmailerException $e) {
              echo $e->errorMessage();
            } catch (Exception $e) {
              echo $e->getMessage();
            }
        ?>

Dabei kommt der error:
Code:
SMTP -> FROM SERVER:220 Debian-60-squeeze-64-LAMP ESMTP Postfix (Debian/GNU)  
SMTP -> FROM SERVER: 250-Debian-60-squeeze-64-LAMP 250-PIPELINING 250-SIZE 10240000 250-ETRN 250-STARTTLS 250-AUTH PLAIN LOGIN 250-AUTH=PLAIN LOGIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN  
SMTP -> ERROR: Password not accepted from server: 535 5.7.8 Error: authentication failed: UGFzc3dvcmQ6  
SMTP -> FROM SERVER:250 2.0.0 Ok  
[B]SMTP Error: Could not authenticate.[/B]
Allerdings verstehe ich es nicht, da postfix ein nutzer auf dem server ist und das pw stimmt.
EDIT: Scheint irgendetwas mit der mysql-datenbank zu sein, allerdings weiss ich noch nicht warum es scheitert.
Code:
Mar  5 21:51:18 Debian-60-squeeze-64-LAMP postfix/smtpd[23887]: connect from Debian-60-squeeze-64-LAMP[78.47.60.123]
Mar  5 21:51:18 Debian-60-squeeze-64-LAMP dovecot: auth-worker(default): mysql: Connect failed to localhost (postfixdb): Access denied for user 'postfix'@'localhost' (using password: YES) - waiting for 75 seconds before retry
Mar  5 21:51:18 Debian-60-squeeze-64-LAMP dovecot: auth-worker(default): sql(postfix@mineforce,78.47.60.123): Password query failed: Not connected to database
Mar  5 21:51:20 Debian-60-squeeze-64-LAMP postfix/smtpd[23887]: warning: Debian-60-squeeze-64-LAMP[78.47.60.123]: SASL LOGIN authentication failed: UGFzc3dvcmQ6
Mar  5 21:51:20 Debian-60-squeeze-64-LAMP postfix/smtpd[23887]: lost connection after RSET from Debian-60-squeeze-64-LAMP[78.47.60.123]
Mar  5 21:51:20 Debian-60-squeeze-64-LAMP postfix/smtpd[23887]: disconnect from Debian-60-squeeze-64-LAMP[78.47.60.123]
Das wundert mich, da der name und das pw in allen dateien richtig ist.


3.Gerade ist noch aufgefallen, dass ich per postfix.admin nur emails versenden, allerdings keine empfangen kann:
Code:
Technical details of permanent failure:
Google tried to deliver your message, but it was rejected by the server for the recipient domain [URL="http://mineforce.de"]mineforce.de[/URL] by [URL="http://mail.mineforce.de"]mail.mineforce.de[/URL]. [78.47.60.123].

The error that the other server returned was:
554 5.7.1 <[EMAIL="[email protected]"][email protected][/EMAIL]>: Relay access denied

Im log findet sich dazu
Code:
Mar  5 21:37:52 Debian-60-squeeze-64-LAMP postfix/smtpd[23792]: connect from mail-wg0-f51.google.com[74.125.82.51]
Mar  5 21:37:52 Debian-60-squeeze-64-LAMP postfix/smtpd[23792]: NOQUEUE: reject: RCPT from mail-wg0-f51.google.com[74.125.82.51]: 554 5.7.1 <[email protected]>: Relay access denied; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<mail-wg0-f51.google.com>
Mar  5 21:37:52 Debian-60-squeeze-64-LAMP postfix/smtpd[23792]: disconnect from mail-wg0-f51.google.com[74.125.82.51]
 
Zuletzt bearbeitet:
Werbung:
Du hast Postfix offenbar so konfiguriert, dass es auf eine MySQL-Datenbanktabelle zugreifen soll. Diese musst Du natürlich anlegen bzw. anlegen lassen und auch die Zugangsdaten für den MySQL-Nutzer postfix korrekt setzen - denn der ist hier das Problem:

Code:
Mar  5 21:51:18 Debian-60-squeeze-64-LAMP dovecot: auth-worker(default): mysql: Connect failed to localhost (postfixdb): Access denied for user 'postfix'@'localhost' (using password: YES) - waiting for 75 seconds before retry

Da Du selbst auf einem Server mit Mailversand experimentierst, würde ich dir nahe legen dir einige Tutorials zur Einrichtung von postfix durchzulesen. Anders als bei anderer Software ist es hier mit einfacher Installation nicht immer getan. Man muss das Programm auch so konfigurieren, dass es nicht nur das macht was man will sondern auch sicher ist. Ein unsicherer Mailserver wird sehr schnell zum Spam-Versand von Dritten genutzt, dein Server würde kompromittiert und sehr schnell auf diversen Blacklisten stehen - ganz zu schweigen von möglichen Abmahnungen.
 
Danke für den Hinweis, sobald es funktioniert werde ich mich um die Sicherheit kümmern.
Was ich an dem mysql-error nicht ganz verstehe ist, dass der assistent bei der installation mit dem account auf die datenbank zugegriffen hat und dort tabellen etc erstellt hat. Zudem kann ich mich mit postfix + dem pw bei phpmyadmin anmelden, was wohl darauf schließen lässt, dass irgendetwas anderes im argen ist.
Jede einzelne datei hoch zu laden wäre wohl sinnlos, ich denke, dass ich dort jetzt selbst durch muss :mrgreen:.
Für Ratschläge/Hinweise bin ich immer offen.
liebe Grüße
 
Zurück
Oben