Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Xampp + mail  (Přečteno 9767 krát)

sirkubador

  • Aktivní člen
  • *
  • Příspěvků: 270
    • http://minastir.ic.cz
Xampp + mail
« kdy: 05 Února 2007, 17:23:40 »
Zdravím, nainastaloval jsem si kvuli eclipse xampp, a také kvůli tomu, že jsem nemohl dělat s mysql přes balíček prakticky nic, resp. nejake to permission denied user root @ localhost password no (nevím, možná plácám, ale něco takového mi to psalo), ani do phpmyadmina jsem nemohl; nicméně drahý xampp, ač jinak bez problémů, nezvládá odesílat maily(krom češtiny v mysql). PHP funkce mail() nic neodešle a ani chybu nevyhodí. Kdesi jsem se dočetl, že bych měl mít nainstalovaný sendmail nebo postfix, ono to je i celkem logické, pokud není v xamppu mailserver - tak jsem vesele instaloval, konfiguroval. V php.ini jsem se pokoušel nastavit cestu k /usr/sbin/sendmail, ale mail() to i po restartu serveru ignoruje. To bude tím, že asi pořád dělám něco špatně. Má s tím někdo zkušenosti? Návody jsou bohužel nějaké takové neúplné, ty dobré jsou ve španělštině a uživatelské fórum na mě mluví německy. To si pak člověk, který se domluví jen slabší angličtinou, moc nepomůže.

Díky

ubuntu 6.10, xampp 1.5.3a
"A simple, lightweight linux distribution" (64-bit)

sirkubador

  • Aktivní člen
  • *
  • Příspěvků: 270
    • http://minastir.ic.cz
Xampp + mail
« Odpověď #1 kdy: 05 Února 2007, 22:08:49 »
Našel jsem ale jenom tohle, je to hezké, přehledné, ale opravdu netuším, co nainstalovat a nakonfigurovat, aby mi běhla moje drahá funkce mail()

https://help.ubuntu.com/6.10/ubuntu/serverguide/C/email-services.html

Má někdo nějaký nápad?

Díky
"A simple, lightweight linux distribution" (64-bit)

Guido

  • Aktivní člen
  • *
  • Příspěvků: 148
Xampp + mail
« Odpověď #2 kdy: 05 Února 2007, 22:39:50 »
PHP funkce mail() je soucasti core PHP, takze kvuli ni samotne nemusite instalovat nic. Aby funkce fungovala, musite mit zprovozneny mail-server: sendmail, postfix, qmail, to je jedno (u postfixu a qmailu musíte mit zprovozneny taky wrapper na sendmail - PHP ocekava, ze v systemu bude sendmail). S konfiguraci mail serveru Vam nepomuzu.

Ale jinak jako skvelou (a lepsi) nahradu za funkci mail() muzu doporucit tridu phpmailer. Funguje univerzalne (Unix, Windows), ma spoustu moznosti a hlavne nevyzaduje, aby byl v systemu naistalovan mail server - muzete pouzit jakekoli SMTP, kam mate pristup (klidne i anonymni).
http://phpmailer.sourceforge.net
Guido

drat

  • Aktivní člen
  • *
  • Příspěvků: 394
Xampp + mail
« Odpověď #3 kdy: 05 Února 2007, 22:41:30 »
No ja vam bohuzel neporadim ale funkce mail ma tak jednoduchou syntaxy a parametry ze myslim ze se nemusi nijak zvlast testovat pokud uz mate nekde najaky funkcni pripad i s pokrocilymi parametry pro hlavicku mailu tak myslim ze neni vubec co resit. No jinak ten mail neni o PHP. Musitesi rozbehat nejakou mailovou sluzbu (asi sendmail) a otestovat ze spravne funguje. Potom bych zkusil teprve na ni nastavit PHP. Jinak PHP by melo sendmail mozna hledat i automaticky. Neco malo je i v manualu http://cz.php.net/manual/cs/ref.mail.php. A jeste nevim nevim pokud nemate verejnou adresu jestli vam pujdou posialt mailu ven do internetu, ale na lokale by kazdopadne meli jit posilat.

Guido

  • Aktivní člen
  • *
  • Příspěvků: 148
Xampp + mail
« Odpověď #4 kdy: 05 Února 2007, 22:45:28 »
Jinak co se tyka MySQL, nenastavil jste si po instalaci heslo pro roota. Kdyz naistalujete balicek mysql-server, vypise Vam na terminal kroky, ktere je potreba udelat pro zprovozneni databaze.

Dodatecne nastavite heslo pro roota z terminalu:
Kód: [Vybrat]
mysqladmin password nove_heslo
Guido

sirkubador

  • Aktivní člen
  • *
  • Příspěvků: 270
    • http://minastir.ic.cz
Xampp + mail
« Odpověď #5 kdy: 05 Února 2007, 23:52:59 »
Díky, třídu "phpmailer" určitě vyzkouším. Zatím linuxu dělám teprve první krůčky, když jsem tedy nainstaloval sendmail po té, co jsem odstranil postfix, při instalaci mi to vypsalo tohle:

WARNING: local host name (sir4600) is not qualified; see cf/README: WHO AM I?
/etc/mail/aliases: 2 aliases, longest 10 bytes, 24 bytes total
Starting Mail Transport Agent: sendmail.

Asi se mu nelíbí jméno mého pc jako local host name.... To by mohl být ten problém. Bohužel z toho, co mi dali nemám moc ponětí o tom, co, kde jak nastavit(). Pak ještě tyto řádky:

Informational: confCR_FILE file empty: /etc/mail/relay-domains
Informational: confCT_FILE file empty: /etc/mail/trusted-users

Ad mysql - máte samozřejmě pravdu, instaloval jsem ten balík asi 4x a jenom jednou podle návodu.... Vida, když jsme u toho návodu, měl bych se po nějakém návodu na sendmail poohlédnout, né pořád na fóru....

Pak jsem znovu zkusil postfix podle návodu a řádky, které to mělo vypisovat při testu to nevypsalo. to jsem z toho jelen.
"A simple, lightweight linux distribution" (64-bit)

sirkubador

  • Aktivní člen
  • *
  • Příspěvků: 270
    • http://minastir.ic.cz
Xampp + mail
« Odpověď #6 kdy: 06 Února 2007, 16:06:46 »
Jenom mi jde o to, aby mi funkce mail() fungovala, mám na localhostu jeden větší projekt a potřebuju si autorizovat hesla a testovat to, co už jsem jednou napsal bez "phpmaileru" a to jakýmkoliv způsobem. No a na to jsem nějak návod nenašel. Vím, že mi to pod woknama přes easyphp běhalo a vím, že to běhá na druhém pc se SUSE. A to ani jeden veřejnou adresu nemá.

Ještě k tomu heslu výpis z konzole ať se pokouším o cokoliv:

sirkubador@sir4600:~$ mysql -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

//opraveno smazáním /var/lib/mysql a následným dpkg-reconfigure mysql-server-5.0
"A simple, lightweight linux distribution" (64-bit)

Guido

  • Aktivní člen
  • *
  • Příspěvků: 148
Xampp + mail
« Odpověď #7 kdy: 06 Února 2007, 16:14:19 »
Správně by to přihlášení melo být:
Kód: [Vybrat]
mysql -u root -pPředpokládám, že to nové heslo jste si už nastavil.
Guido

Guido

  • Aktivní člen
  • *
  • Příspěvků: 148
Xampp + mail
« Odpověď #8 kdy: 06 Února 2007, 16:19:07 »
Integrace třídy phpmailer je jednoduchá:

1) includujete třídu
2) nastavíte si proměnné pro připojení k SMTP
3) a pošlete
Kód: [Vybrat]
if (include("class.phpmailer.php")) {
$mail = new PHPMailer();

$mail->CharSet = "UTF-8";
$mail->ContentType = "text/html";
$mail->IsSMTP();
$mail->Host = "mail.phaghdh";
$mail->From = "";
$mail->FromName = "PHPMailer";
$recipients = explode(";", ERR_MAIL_ADDRESS);
foreach ($recipients as $recMail) {
$mail->AddAddress($recMail);
}

$mail->Subject = "ERROR: update - Organizační struktura";
$mail->Body = $report;
$mail->WordWrap = 70;

$mail->Send();
}
Guido

sirkubador

  • Aktivní člen
  • *
  • Příspěvků: 270
    • http://minastir.ic.cz
Xampp + mail
« Odpověď #9 kdy: 07 Února 2007, 17:56:39 »
Díky, jak říkám, určitě v budoucnu vyzkouším, ale při testování stávajícího projektu jako celku, kde je případů využití funkce mail() bezpočet, mi to nepomůže - mimochodem - můžu použít při nastavování připojení k smtp třeba údaje z mého účtu na seznam.cz?

Zde je výpis konfiguračního(snad) souboru. Věděl by někdo, co s tím, popř. pomohlo by mi, kdybych stejný soubor vzal z počítače se SUSE, kde to chodí bez problémů?

(/etc/postfix/main.cf)

Kód: [Vybrat]
# See /usr/share/postfix/main.cf.dist for a commented, more complete version


# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

# TLS parameters
smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt
smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key
smtpd_use_tls = yes
smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

myhostname = server1.example.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = mail.fossedu.org, localhost.localdomain, localhost, sir4600
relayhost =
mynetworks = 127.0.0.0/8, 192.168.1.0/24
mailbox_command =
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all
smtpd_sasl_local_domain =
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
smtpd_tls_auth_only = no
smtp_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
myorigin = /etc/mailname
home_mailbox = Maildir/
virtual_alias_domains = fossedu.org linuxelabs.com
virtual_alias_maps = hash:/etc/postfix/virtual
Díky
"A simple, lightweight linux distribution" (64-bit)

sirkubador

  • Aktivní člen
  • *
  • Příspěvků: 270
    • http://minastir.ic.cz
Xampp + mail
« Odpověď #10 kdy: 08 Února 2007, 19:49:55 »
Nechci být vlezlý, ale to opravdu nikdo neví?


Možná kdyby byl nějaký admin tak hodný a ztratil minutku přejmenováním(já sám bohužel nemůžu) tématu na "Konfigurace Postfix (neveřejná IP)" nebo tak nějak, stávající název totiž už asi není aktuální, za což se omlouvám, měl jsem to předpokládat...
"A simple, lightweight linux distribution" (64-bit)

sirkubador

  • Aktivní člen
  • *
  • Příspěvků: 270
    • http://minastir.ic.cz
Xampp + mail
« Odpověď #11 kdy: 09 Února 2007, 09:39:44 »
Ještě výpis z var/log/mail.err
Kód: [Vybrat]
Feb  9 09:32:14 sir4600 postfix/cleanup[9427]: fatal: open database /etc/postfix/sender_canonical.db: No such file or directory
Feb  9 09:32:14 sir4600 postfix/trivial-rewrite[9428]: fatal: open database /etc/postfix/relocated.db: No such file or directory
Feb  9 09:33:33 sir4600 postfix/cleanup[9718]: fatal: open database /etc/postfix/sender_canonical.db: No such file or directory
Feb  9 09:33:33 sir4600 postfix/trivial-rewrite[9719]: fatal: open database /etc/postfix/relocated.db: No such file or directory
"A simple, lightweight linux distribution" (64-bit)

Guido

  • Aktivní člen
  • *
  • Příspěvků: 148
Xampp + mail
« Odpověď #12 kdy: 09 Února 2007, 09:48:06 »
Tady je odkaz na na nastavení Postfixu na Ubuntu http://flurdy.com/docs/postfix/, konkrétně http://flurdy.com/docs/postfix/#conf_mta.
Guido

sirkubador

  • Aktivní člen
  • *
  • Příspěvků: 270
    • http://minastir.ic.cz
Xampp + mail
« Odpověď #13 kdy: 13 Února 2007, 18:21:01 »
díky za vhodné nakopnutí. Prolézal jsem všechny možné diskuze a návody - nakonec se mi to podařilo zprovoznit. JO.

nuže tedy jak na to:

ISP je u mě telekom(tedy o2), ale jejich SMTP server měl problémy s odesíláním mých mailů. Err 450 a err 554 (nebo 544?). Takže jejich server nic neodesílal - možná je třeba jenom si u nich něco zapnout nebo nastavit, ale tím si nejsem jistý. Proč ISP? ZA to může neveřejná IP

základ bylo odstranit kompletně postfix, nainstalovat postfix znovu přes synaptic, který narozdíl od konzole nabídne nastavovací klikátko, zvolit internetový server, vymyslet si nějaké vlastní doménové jméno na kterém nezáleží(místo localhost, ten to nějak nemá rádo či co) a u zbytku ponechat defaultní hodnoty.

Pak kompletně v synapticu odebrat php5/4 a nainstalovat znovu, ponechat v defaultní konfiguraci(zvlášť cestu k sendmailu v php.ini) - ono se samo přizpůsobí nainstalovanému postfixu. Tím vznikne provázanost php+postfix. ještě cvičně odeslat pomocí fce mail() v php mail někam do éteru a zkontrolovat /var/log/mail.info, jestli se to o něco pokouší.

Teď ta těžší fáze: nastavit postfix tak, aby šel přes smtp seznam.cz (volný, centrum, atlas....) podstrčit reálný mailový účet SMTP serveru a zajistit jméno + heslo

Musel jsem si jako sudo otevřít /etc/postfix/main.cf
Kód: [Vybrat]
$ sudo gedit /etc/postfix/main.cfa přidat následujících pár řádek:
Kód: [Vybrat]
smtp_generic_maps = hash:/etc/postfix/generic
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options =
pak vytvořit dvě postfixové databáze generic.db a sasl_passwd.db, což je malinko složitější.
Kód: [Vybrat]
$ sudo gedit /etc/postfix/genericdovnitř vepsat jméno uživatele který odesílá mail pak mezeru a pak reálný mailový účet(také nejlépe vlastní)např.

mařenka  mařenka1@nejaky_server.cz

. Uložit a zavřít.
Kód: [Vybrat]
$ sudo postmap /etc/postfix/generic
$ sudo chmod 755 /etc/postfix/generic.db
tohle vytvoří databázový soubor postfixu a přidá mu práva, aby ho mohl číst, zajistí tak, že se místo jména uživatele podstrčí reálná adresa, kterou si SMTP server ověří. pak smtp s jménem a heslem:
Kód: [Vybrat]
$ sudo gedit /etc/postfix/sasl_passwddovnitř vepsat jméno smtp serveru mezera jméno dvojtečka heslo

smtp.nejaky_server.cz mařenka1:jeníček

Uložit zavřít vygenerovat .db soubor

Kód: [Vybrat]
$ sudo postmap /etc/postfix/sasl_passwd
$ sudo chmod 755 /etc/postfix/sasl_passwd.db
to ale asi nebude bezpečné, nevím... pak restart posfixu a mělo by to jet. resp. MNĚ TO JEDE
Kód: [Vybrat]
$ sudo /etc/init.d/postfix restart
"A simple, lightweight linux distribution" (64-bit)

Guido

  • Aktivní člen
  • *
  • Příspěvků: 148
Xampp + mail
« Odpověď #14 kdy: 14 Února 2007, 09:40:05 »
Dobrý návod.

Ale je to poměrně dost práce, na to, že se zprovozní jedna PHP funkce (samozřejmě, pokud Postfix nevyužíváte i jinak).

Právě k tomu účelu slouží ta třída phpmailer - pokud nepotřebuji, nebo nemám možnost použít mail-server. Jediný problém je, že musí být "includovatelná". Takže pokud mám víc projektů, musí být buď centrálně přístupná, nebo pokud to nejde tak v každém projektu její kopie.
Guido

 

Provoz zaštiťuje spolek OpenAlt.