sendmail()

Sekcia: Programovanie 14.02.2011 | 18:59
phpproblem   Návštevník
Zdravim Vas,
pri pouziti funkcie sendmail() mi na zadanu adresu ziadny mail nepride, mam LINUX UBUNTU 10....nevie niekto cim to moze byt?
    • Re: sendmail() 14.02.2011 | 19:52
      Avatar Milan Dvorský debian,mint kde,android  Administrátor
      nenastaveny SMTP server ... pouzi radsej funkciu PEARmail ... pouzi aj realne konto a vyhnes sa zahodeniu tvojho mailu do spamu alebo priamo rejectu ...
      • Re: sendmail() 15.02.2011 | 00:15
        phpproblem   Návštevník
        a ako pouzijem realne konto?
      • Re: sendmail() 15.02.2011 | 00:42
        phpproblem   Návštevník
        spustil som tento skript: <?php
        include('Mail.php');
        $mail = Mail::factory("mail");
        $headers = array("From"=>"me@example.com", "Subject"=>"Test Mail");
        $body = "This is a test!";
        $mail->send("mojmail@na.ktory.mi.neprislo.nic.com", $headers, $body);
        echo "hotovo";
        ?>

        a stale neprisla na mail ziadna sprava, cim to moze byt?
        • Re: sendmail() 15.02.2011 | 17:29
          lieko   Návštevník
          zacal by som prezretim suboru /var/log/maillog
          • Re: sendmail() 16.02.2011 | 00:29
            phpproblem   Návštevník
            A co presne by som mal pozret v tom subore?

            v php.ini mam taketo nastavenie:

            [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 = me@example.com

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


            Niekde som sa docital ze potrebujem zistit ISP's mail server's address. Kde by som to nasiel ?
            Dakujem vopred za pomoc.
            • Re: sendmail() 16.02.2011 | 10:35
              Avatar Milan Dvorský debian,mint kde,android  Administrátor
              to si vies zadefinovat aj v tom PHP scripte vyuzivajucom pear ...
            • Re: sendmail() 16.02.2011 | 12:25
              lieko   Návštevník
              som myslel ze to ma posielat tvoj lokalny mail server. Ak ides pouzivat providerov mail server tak potom nemusis pozerat v tom logu nic.
              • Re: sendmail() 16.02.2011 | 12:29
                lieko   Návštevník
                ale zase mozes pozriet php.log ze ci vsetko prebehlo v poriadku. By default php neloguje takze si to musis nastavit v php.ini

                error_log = /var/log/php.log

                a potom este vytvorit tento subor a dat mu spravne prava
                #touch /var/log/php.log
                #chown apache:apache /var/log/php.log (tie prava podla toho kto bude volat ten skript)
            • Re: sendmail() 16.02.2011 | 12:39
              Avatar lime Debian, Red Hat, Fedora Core 3  Používateľ
              a mas rozbehany smtp server? :), bez neho ti je funkcia php_mail na nic :), alebo mozes vyuzivas nejaky externy SMTP server ak nevies nakonfigurovat lokalny
              napr toto
              Prejdite z modrej obrazovky k linuxu :))
              • Re: sendmail() 17.02.2011 | 17:05
                phpproblem   Návštevník
                SMTP server rozbehany nemam, popozeral som cosi na nete a asi som sa aj nove dozvedel tak dufam ze sa konkretnejsie tentoraz opytam:

                Potrebujem poslielat emaily cez nejakz SMTP server, ako som pozeral nakonfigurovat SMTP na localhoste nie je moc jednoduche, aky SMTP server najlepsie pouzit ?

                nasiel som takyto skript, ktory mi bohuzial nefunguje....... username a Password su premenne kde mam dat meno a heslo vytvoreneho mailu na zoznam.sk ?

                ps: dostavam error : SMTP Error: Could not connect to SMTP host.

                <?php
                require_once($_SERVER['DOCUMENT_ROOT'].'/Hudobny_portal/lib/phpmailer/class.phpmailer.php');

                $mail = new PHPMailer();
                $mail->CharSet = 'utf-8';

                $mail->IsSMTP();
                $mail->SMTPAuth = true;
                $mail->Host = 'smtp.zoznam.sk';
                $mail->Username = 'xyz';
                $mail->Password = 'xyz';

                $mail->From = 'xyz@zoznam.sk';
                $mail->FromName = "Petr Novák";
                $mail->AddAddress('xxx@gmail.com');

                $mail->Subject = 'První e-mail';
                $mail->Body = 'Toto je první e-mail odeslaný pomocí knihovny PHPMailer!';
                $mail->WordWrap = 50;

                if(!$mail->Send()) {
                echo 'Zpráva nebyla odeslána!
                ';
                echo 'Mailer Error: ' . $mail->ErrorInfo;
                } else {
                echo 'Zpráva byla úspěšně odeslána!';
                }
                ?>

                Dakujem za pomoc
                • Re: sendmail() 17.02.2011 | 17:30
                  lieko   Návštevník
                  pozrel som si stranku zoznamu a tam pisu ze smtp server pouziva port 587, preto ti to nejde. Inak to mas podla mna dobre a malo by to ist. Otazka je ci dokaze ten skript pouzit aj iny port.

                  Nakonfigurovat vlastny smtp server inak nie je moc zlozite aj ked zase mozu sa objavit nejake ine problemy. Keby si sa predsa len rozhodol ist touto cestou naisntaluj si postfix (je dost velka pravdepodobnost ze uz ti aj bezi) a ten je uz v defaultnej konfiguracii schopny posielat maily. Ako smtp server si das localhost, authentifikaciu nebude vyzadovat.
                  • Re: sendmail() 17.02.2011 | 17:37
                    lieko   Návštevník
                    ak mas konto na gmaily tak skus poslat mail odtial na to je kopa navodov na nete, napr.

                    <?php

                    require_once "Mail.php";

                    $from = "<from.gmail.com>";
                    $to = "<to.yahoo.com>";
                    $subject = "Hi!";
                    $body = "Hi,\n\nHow are you?";

                    $host = "ssl://smtp.gmail.com";
                    $port = "465";
                    $username = "<myaccount.gmail.com>";
                    $password = "password";

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

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

                    if (PEAR::isError($mail)) {
                    echo("

                    " . $mail->getMessage() . "

                    ");
                    } else {
                    echo("

                    Message successfully sent!

                    ");
                    }

                    ?>
                  • Re: sendmail() 17.02.2011 | 17:54
                    phpproblem   Návštevník
                    upravil som to takto: ....
                    $mail = new PHPMailer();
                    $mail->CharSet = 'utf-8';
                    $mail->Port = 587;
                    $mail->IsSMTP();
                    $mail->SMTPAuth = true;
                    .....

                    Stale to iste....nebude chyba niekde v php.ini? Tam to mam takto:

                    [mail function]
                    ; For Win32 only.
                    ; http://php.net/smtp
                    SMTP = smtp.zoznam.sk
                    ; http://php.net/smtp-port
                    smtp_port = 587

                    ; For Win32 only.
                    ; http://php.net/sendmail-from
                    ;sendmail_from = me@example.com

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



                    skusal som aj cez postfix ale neprisiel na schranku co som zadal ziadny mail.....
                    • Re: sendmail() 17.02.2011 | 18:09
                      lieko   Návštevník
                      ja by som siel na to inak. Najskor by som skusil poslat mail jednoducho cez funkciu mail() a potom by som to zacal hrat s dalsimi vecami. to php ti bezi na windowse ?
                      • Re: sendmail() 17.02.2011 | 18:10
                        lieko   Návštevník
                        teraz som si vsimol ze pises ze si to skusal cez postfix. Inak v tom php.ini mas smtp server nstaveny vo windows sekcii. Ked si to posielal cez ten localhsot (teda postfix) tak sa pozri co je vo /var/log/maillog
                        • Re: sendmail() 17.02.2011 | 18:42
                          phpproblem   Návštevník
                          mam tam taketo errory:

                          Feb 17 17:38:03 Andrej postfix/local[5040]: fatal: main.cf configuration error: mailbox_size_limit is smaller than message_size_limit
                          Feb 17 17:38:04 Andrej postfix/master[2093]: warning: process /usr/lib/postfix/local pid 5040 exit status 1
                          Feb 17 17:38:04 Andrej postfix/master[2093]: warning: /usr/lib/postfix/local: bad command startup -- throttling


                          a pravidelne sa mi obnovuju
                      • Re: sendmail() 17.02.2011 | 18:14
                        phpproblem   Návštevník
                        prave to je ten problem ze mi nejde ani funkcia mail().....mam linux Ubuntu.....skusal som to spravit cez ten gmail a nic mi nezobrazilo v prehliadaci.
                        • Re: sendmail() 17.02.2011 | 18:44
                          lieko   Návštevník
                          najskor sa pozri co ti bezi na porte 25, mal by to byt postfix

                          #netstat -tapn | grep 25

                          potom sa pozri kde je binarka sendmail

                          $which sendmail

                          uprav /etc/php.ini aby vyzeralo nasledovne:
                          [mail function]
                          ; For Win32 only.
                          SMTP = localhost
                          smtp_port = 25

                          ; For Win32 only.
                          ;sendmail_from = me@example.com

                          ; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
                          sendmail_path = /usr/sbin/sendmail -t -i

                          potom si vytvor testovaci skript napr. test.php


                          <?php
                          // The message
                          $message = "Line 1\nLine 2\nLine 3";

                          // Send
                          mail('prijimatel.at.mail.com', 'the subject', $message, null, '-fodosielatel.at.mail.sk');
                          ?>

                          (at = zavinac)

                          tento skript spusti z konzoly

                          $php test.php

                          a mal by si dostat mail. Ak nie pozri rovno /var/log/maillog a pastni sem posledne riadky

                          • Re: sendmail() 18.02.2011 | 18:49
                            phpproblem   Návštevník
                            V prvom rade vdaka za ochotu, spravil som vsetko podla tvojich pokynov ale stale nic. Zda sa mi cudne ze v mail.log sa mi neustale aktualizuje ten isty error aj ked nepouzivam ziadnu mail funkciu. Skopiroval som posledne riadky, aj cas tych errorov je divny pretoze to je takmer neustale, nemam preinstalovat postfix?

                            Feb 18 17:42:38 Andrej postfix/master[2125]: warning: process /usr/lib/postfix/local pid 2826 exit status 1
                            Feb 18 17:42:38 Andrej postfix/master[2125]: warning: /usr/lib/postfix/local: bad command startup -- throttling
                            Feb 18 17:43:38 Andrej postfix/local[2833]: fatal: main.cf configuration error: mailbox_size_limit is smaller than message_size_limit
                            Feb 18 17:43:39 Andrej postfix/master[2125]: warning: process /usr/lib/postfix/local pid 2833 exit status 1
                            Feb 18 17:43:39 Andrej postfix/master[2125]: warning: /usr/lib/postfix/local: bad command startup -- throttling
                            Feb 18 17:44:39 Andrej postfix/local[2837]: fatal: main.cf configuration error: mailbox_size_limit is smaller than message_size_limit
                            Feb 18 17:44:40 Andrej postfix/master[2125]: warning: process /usr/lib/postfix/local pid 2837 exit status 1
                            Feb 18 17:44:40 Andrej postfix/master[2125]: warning: /usr/lib/postfix/local: bad command startup -- throttling
                            Feb 18 17:45:40 Andrej postfix/local[2852]: fatal: main.cf configuration error: mailbox_size_limit is smaller than message_size_limit
                            Feb 18 17:45:41 Andrej postfix/master[2125]: warning: process /usr/lib/postfix/local pid 2852 exit status 1
                            Feb 18 17:45:41 Andrej postfix/master[2125]: warning: /usr/lib/postfix/local: bad command startup -- throttling
                            • Re: sendmail() 18.02.2011 | 18:57
                              lieko   Návštevník
                              otvor si postfix konfigurak main.cf (asi /etc/postfix/main.cf) a tam najdi riadky :

                              message_size_limit = 52428800
                              mailbox_size_limit = 101200000


                              Ak tam ten druhy riadok nemas tak ho pridaj, restartni postfix a skus znova spustit ten skript z konzoly. Ak nevypise chybu tak opat pozri do maillogu ci sa nieco zmenilo

                              • Re: sendmail() 19.02.2011 | 12:08
                                phpproblem   Návštevník
                                pridal som to tam a uz nepise ten error, ked som spustil skript tak v mail.log sa pridalo:

                                Feb 19 11:03:23 Andrej postfix/pickup[2225]: BF0812A0266: uid=0 from=<odosielatel@mail.sk>
                                Feb 19 11:03:23 Andrej postfix/cleanup[3401]: BF0812A0266: message-id=<20110219100323.BF0812A0266@Andrej>
                                Feb 19 11:03:23 Andrej postfix/qmgr[2227]: BF0812A0266: from=<odosielatel@mail.sk>, size=344, nrcpt=1 (queue active)
                                Feb 19 11:03:24 Andrej postfix/local[3404]: BF0812A0266: to=<krnac.a@gmail.com>, relay=local, delay=0.39, delays=0.28/0.01/0/0.1, dsn=5.1.1, status=bounced (unknown user: "krnac.a")
                                Feb 19 11:03:24 Andrej postfix/cleanup[3401]: 1A1262A0267: message-id=<20110219100324.1A1262A0267@Andrej>
                                Feb 19 11:03:24 Andrej postfix/bounce[3405]: BF0812A0266: sender non-delivery notification: 1A1262A0267
                                Feb 19 11:03:24 Andrej postfix/qmgr[2227]: 1A1262A0267: from=<>, size=1977, nrcpt=1 (queue active)
                                Feb 19 11:03:24 Andrej postfix/error[3406]: 1A1262A0267: to=<odosielatel@mail.sk>, relay=none, delay=0.4, delays=0.19/0.01/0/0.2, dsn=5.0.0, status=bounced (mail.sk)
                                Feb 19 11:03:24 Andrej postfix/qmgr[2227]: BF0812A0266: removed
                                Feb 19 11:03:24 Andrej postfix/qmgr[2227]: 1A1262A0267: removed
                                • Re: sendmail() 19.02.2011 | 13:54
                                  Avatar Milan Dvorský debian,mint kde,android  Administrátor
                                  prva chyba: neexistujuci user na gmail ...
                                  druha chyba: snazil si sa to poslat z urcitej domeny, no tvoja IP nema priradeny DNS zaznam odpovedajuci tomu za zavinacom ;)
                                  • Re: sendmail() 19.02.2011 | 19:34
                                    phpproblem   Návštevník
                                    neexistujuci user? vsak krnac.a@gmail.com je moj mail tak preco neexistujuci?
                                    A ako priradim DNS zaznam mojej ip ?
                                    • Re: sendmail() 19.02.2011 | 22:05
                                      Avatar Milan Dvorský debian,mint kde,android  Administrátor
                                      Feb 19 11:03:24 Andrej postfix/local[3404]: BF0812A0266: to=<krnac.a@gmail.com>, relay=local, delay=0.39, delays=0.28/0.01/0/0.1, dsn=5.1.1, status=bounced (unknown user: "krnac.a")

                                      a tu ti posielam moj funkcny skript vyuzivajuci smtp google ...
                                      include('Mail.php');
                                      include('Mail/mime.php');

                                      $who = "Tvoje meno";
                                      $text = $telo;
                                      $html = '<html><body>'.$telo.'
                                      </body></html>';
                                      $crlf = "\n";
                                      $From = "\"Moje meno\"<tvojmail@domena.com>";
                                      $hdrs = array(
                                      'From' => $From,
                                      'To' => ''.$komu.'',
                                      'Subject' => ''.$predmet.''
                                      );

                                      $mime = new Mail_mime($crlf);
                                      $mime->setTXTBody($text);

                                      #
                                      // SMTP authentication params
                                      #
                                      $params["host"] = "smtp.gmail.com";
                                      $params["port"] = "587";
                                      $params["auth"] = "PLAIN";
                                      //$params["auth"] = true;
                                      $params["username"] = "tvojmail@domena.com";
                                      $params["password"] = "tvojeheslo";

                                      $body = $mime->get();

                                      $hdrs = $mime->headers($hdrs);
                                      $mail =& Mail::factory('smtp', $params);
                                      $mail->send(''.$komu.'', $hdrs, $body);
                                      if (PEAR::isError($mail)) { print($mail->getMessage());}
                                      • Re: sendmail() 28.02.2011 | 18:40
                                        phpproblem   Návštevník
                                        postupoval som podla jedneho navodu : http://minimalbugs.com/questions/set-postfix-to-be-able-to-send-email-by-using-gmail-smtp-as-relay-server

                                        vsetko som spravil a v mail.log sa mi nacitava kazdu minutu tieto errory:

                                        Feb 28 17:38:35 Andrej postfix/pickup[4470]: fatal: dict_open: unsupported dictionary type: ssl: Is the postfix-ssl package installed?
                                        Feb 28 17:38:35 Andrej postfix/qmgr[4471]: fatal: dict_open: unsupported dictionary type: ssl: Is the postfix-ssl package installed?
                                        Feb 28 17:38:36 Andrej postfix/master[2943]: warning: process /usr/lib/postfix/pickup pid 4470 exit status 1
                                        Feb 28 17:38:36 Andrej postfix/master[2943]: warning: /usr/lib/postfix/pickup: bad command startup -- throttling
                                        Feb 28 17:38:36 Andrej postfix/master[2943]: warning: process /usr/lib/postfix/qmgr pid 4471 exit status 1
                                        Feb 28 17:38:36 Andrej postfix/master[2943]: warning: /usr/lib/postfix/qmgr: bad command startup -- throttling


                                        vedel by si mi poradit ? pokial mozno co najjednoduchsie nie som odbornik, dakujem
                          • Re: sendmail() 18.02.2011 | 18:53
                            phpproblem   Návštevník
                            este som zabudol napisat, po zadani netstat -tapn | grep 25 som dostal:

                            tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2125/master
                            tcp 0 0 192.168.0.167:35509 74.125.230.83:80 SPOJENÝ 2485/firefox-bin
                            tcp 0 0 192.168.0.167:35510 74.125.230.83:80 SPOJENÝ 2
                            • Re: sendmail() 18.02.2011 | 19:01
                              lieko   Návštevník
                              to je OK na porte 25 pocuva postfix (to je ten master v prvom riadku)
      • Re: sendmail() 23.02.2011 | 14:34
        darth vader   Návštevník
        Neni nahodou pear mail pouzitelny len v PHP 4?
        Alebo som nestastnou nahodou stiahol nejaku zlu verziu?