Sziasztok!
Napok óta próbálkozom már azzal, hogy el tudjak küldeni egy levelet PHP-ből a GMail SMTP szervere segítségével.
<?php
require("class.phpmailer.php");
$mailer = new PHPMailer();
$mailer->IsSMTP();
$mailer->Host = 'ssl://smtp.gmail.com';
$mailer->SMTPSecure = "tls"; // sets the prefix to the servier
$mailer->Port = 587;
$mailer->SMTPAuth = TRUE;
$mailer->Username = 'sajat@gmail.com'; // Change this to your gmail adress
$mailer->Password = 'jelszo'; // Change this to your gmail password
$mailer->From = 'sajat@gmail.com'; // This HAVE TO be your gmail adress
$mailer->FromName = 'fake'; // This is the from name in the email, you can put anything you like here
$mailer->Body = 'This is the main body of the email';
$mailer->Subject = 'This is the subject of the email';
$mailer->AddAddress('cimzett@gmail.com'); // This is where you put the email adress of the person you want to mail
if(!$mailer->Send())
{
echo "Message was not sent<br/ >";
echo "Mailer Error: " . $mailer->ErrorInfo;
}
else
{
echo "Message has been sent";
}
?>
folyton a következő hibaüzenetet kapom:
SMTP Error: Could not connect to SMTP host. Message was not sent
Mailer Error: SMTP Error: Could not connect to SMTP host.
Az ISP és a tűzfal nem blokkolhatja, mivel a Thunderbird beállításai ugyanezek és azzal tudok levelet fogadni és küldeni.
A php.ini a következőket tartalmazza:
[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 = postmaster@localhost
---------
Windows 7, EasyPHP 5.3.0 (PHP 5.3.0)
Mi lehet a gond?
Köszi.
MysteryKe.
- 4306 megtekintés
Hozzászólások
$mailer->Port = 465;
probald igy.
OpenBSD 4.7/i386 theo for the prezident:D
- A hozzászóláshoz be kell jelentkezni
a 465-ös porttal is próbáltam, azzal sem megy.
- A hozzászóláshoz be kell jelentkezni
Én így csnáltam: http://pastebin.com/0izGpUJX
Fáradt vagyok már átnézni a különbségekért. Remélem azért segítettem.
SMTP beállítások azért vannak elágazásban, mert konfig alapján, lehet sendmail vagy mail-t is használni így.
- A hozzászóláshoz be kell jelentkezni
köszi, kipróbáltam.
hibaüzenetet dobott:
Warning: stream_socket_enable_crypto() [streams.crypto]: this stream does not support SSL/crypto in C:\Program Files\EasyPHP5.3.0\www\class.smtp.php on line 197
a class.smtp.php tartalma:
196: // Begin encrypted connection
197: if(!stream_socket_enable_crypto($this->smtp_conn, true, STREAM_CRYPTO_METHOD_TLS_CLIENT)) {
198: return false;
199: }
200:
201: return true;
202: }
- A hozzászóláshoz be kell jelentkezni
Most nézem, hogy én még a 2 éves 2.1-es verziót használom. Ezzel minden működik, úgyhogy nem is váltok egyhamar. :)
Az 5.0-val nekem se megy az SMTP ezzel a módszerrel.
- A hozzászóláshoz be kell jelentkezni
5.1 van nekem. akkor kénytelen leszek beszerezni egy 2-eset
- A hozzászóláshoz be kell jelentkezni
csak szamomra egyertelmu a hibauzenet?:)
- A hozzászóláshoz be kell jelentkezni
$mailer->Host = 'ssl://smtp.gmail.com';
simán csak smtp.gmail.com (ssl:// nélkül)?
- A hozzászóláshoz be kell jelentkezni
úgy meg semmit nem csinál. csak tőlt, tőlt és tőlt, majd megáll és még csak hibaüzenetet sem ad vissza.
- A hozzászóláshoz be kell jelentkezni
A 25-os portot ma mar egyre tobb szolgaltato blokkolja.
Ilyenkor a legegyszerubb gyorsteszt, ha ratelelnetelsz a megfelelo portra. Ezzel masodpercek alatt szetvalasztod a halozati/tuzfal problemat es a szoftver problemat.
- A hozzászóláshoz be kell jelentkezni
de a PhpMailer-ben ezért is nem a 25-ös, hanem a 465 és 587-es portot állítottam be
- A hozzászóláshoz be kell jelentkezni
Ja latom, a portot kulon explicit kell beallitani. Akkor viszont azt tortent, hogy egy ssl-es csatornan probaltal ssl nelkul kommunikalni, igy az ssl handshake sem jott letre.
- A hozzászóláshoz be kell jelentkezni
hogy hogy?
"$mailer->SMTPSecure = "tls";"
- A hozzászóláshoz be kell jelentkezni
Az 587-es fix SSL szokott lenni. TLS-t 465-on hasznalnak. Azzal, hogy kiszedted az ssl:// tagot, tls-sel probal kommunikalni, ami nem fog menni.
Nem ismerem tulzottan a php mailert, de en megneznem a kovetkezoket:
1) ssl:// es tls nelkuli config 587-en
2) ssl:// nelkuli es tls-es config 465-on
- A hozzászóláshoz be kell jelentkezni
Nekem a php5-pear-mail -el simán megy a gmail-es smtp-s levélküldés. (pear-mime is kell hozzá)
Én nagyjából így csinálom.
- A hozzászóláshoz be kell jelentkezni
ezt hogyan kell használni windows-apache pároson?
- A hozzászóláshoz be kell jelentkezni
Jobb PHP disztrokban van pear.bat...
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
próbáltam, windows 7 alatt nem csinál semmit
- A hozzászóláshoz be kell jelentkezni
Elerkeztunk ahhoz a ponthoz, hogy tudni kene a kornyezeted pontosabb leirasat. Hanyas PHP, honnet van, hanyas Apache, honnet van, etc. (Honnet van: XAMPP csomag, apache.org, magad forditottad, whatever)
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
"Windows 7, EasyPHP 5.3.0 (PHP 5.3.0)"
származási hely: http://easyphp.org
Apache verzió: 2.2.13
Nem forrásból fordítottam, az easyphp telepítője feltelepít és automatikusan konfigurál mindent. utána igény szerint szerkesztgetem az apache konfigfájlját és a php.ini-t.
- A hozzászóláshoz be kell jelentkezni
Nekem akkor volt ilyen problémám, mikor no-ssl apache-csal próbáltam, Az openssl apache-csal rögtön működött. Mindenféle galamb nélkül.
- A hozzászóláshoz be kell jelentkezni
XAMPP-t raktam fel, tartalmazza a PEAR-t.
meghívtam a pMailer függvényt a következő paraméterekkel:
pMailer("cimzett@gmail.com", "felado", "Tárgy", "Hello World!");
de semmilyen eredményt nem adott vissza és el sem küldte a levelet. Ezt már Windows XP-n próbáltam ki.
- A hozzászóláshoz be kell jelentkezni
Hello!
Még azért nem fog neked levelet küldeni ,mert a sendmail config fájlban meg kell neki adni hogy melyik szerveren keresztül levelezzen ami az esetedben a gmail lesz. De itt is jó ha nem a sima php_mail-t használod hanem ami benne van a PEAR csomagba mert úgy tudom hogy avval kényalmesebb az authentikált levélküldés,de ezt már elöttem többen megmutatták már.
Hülye kérdés de azért felteszem. Gondolom a saját gépeden akarsz fejleszteni valami oldalt. Nálad ez biztos tutin is fog menni ,de mi lesz ha kirakod egy külső tárhelyre? Annak is ilyen lesz a levélküldési mechanizmusa?
A sendmail konfigurálását meg a xampp könyvtárában lévő sendmail almappán található sendmail.ini fájlban lehet. Itt kapsz segítséget is hogy mit kell megadni.
Remélem előrébb leszel evvel.
Üdv.
- A hozzászóláshoz be kell jelentkezni
a sandmail konfigfájljában megadtam az smtp szerver címét. Most nem tudom megmutatni a tartalmát, mivel most nem a saját gépemről netezek. A saját gépemen írom az alkalmazást és egy másik (szintén saját üzemeltetésü szerver a munkahelyemen (XP - XAMPP)(nagyon-nagyon-nagyon kicsi cég)) és az alkalmazás nem publikus, azaz csak a dolgozók használják bentről és otthonról (egyszerre 3-4 embernél több nem használja).
Amint saját gépről leszek, kiteszem a sendmail.ini tartalmát is.
-----
szerk.:
sendmail.php
# A GMail service example
account Gmail
tls on
tls_certcheck off
host smtp.gmail.com
from kuldo@hotmail.com
auth on
user kuldo@hotmail.com
password jelszo
itt hol kell megadni a port-ot?
megadtam a php.ini-ben:
; http://php.net/smtp-port
smtp_port = 465
; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = postmaster@localhost
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
- A hozzászóláshoz be kell jelentkezni
A sendmail.php -ben szerintem nem kell portot megadni, a tls_on portot valt szerintem. De ha akarod, kettot ki tudsz probalni:
port 465
es
host smtp.gmail.com:465
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
display_errors = On
error_reporting = E_ALL
A legvegso eset, hogy felcsapsz az XP-re egy IIS SMTP szervert, azt megadod neki localhostnak (a windowsos PHP kepes SMTP szerver adatokat fogadni, csak nem tud TLS-t meg ilyen hulyesegeket), az meg elvben ki fog tudni konnektalni a GMail szerverehez. Borzaszto gany megoldas, de C tervnek tokeletes.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
Hello!
Szerintem kezdésnek azt nézd meg hogy van-e benne egyáltalán valamilyen smtp szerver. Ha nincs akkor szerintem nem fog menni a levélküldés. Persze itt még lehetőség van arra is hogy telepíted az IIS-t ha még ez nem történt meg és annak a levélküldőjét használod.
Azután meg ha nem ragazkodsz az easyphp-hez akkor egy próbára szerintem nézd meg a xampp-ot. Abban alapból benne van a sendmail és azt kb. három sor configolással rá lehet venni hogy küldjön neked levelet. Nem mellékesen abban biztosan benne van a PEAR csomag is.
Üdv.
- A hozzászóláshoz be kell jelentkezni
a sandmail tud csatlakozni a Gmail SMTP szerveréhez?
- A hozzászóláshoz be kell jelentkezni
persze, kimaszik a sandboxbol, es maris karnyujtasnyira van tole.
t
- A hozzászóláshoz be kell jelentkezni
Hello!
Első körben szerintem érdemes lenne azt is kipróbálni hogy egy hagyományos tls nélküli kapcsolattal kipróbáld az egész dolgot. Mondjuk a saját internetszolgáltatódon keresztül. Talán ott nem forszirozzák a titkosított kapcsolatot. Ha már ez működik akkor lenne érdemes tovább lépni egy szintet és nézni hogy melyik beállitás hozza el a megfelelő eredményt. Jelen pillanatban szerintem még az sem biztos hogy az smtp szerver beállításai jók,valamint hogy a php script is azt teszi amit kellene.
Üdv.
- A hozzászóláshoz be kell jelentkezni
új fejlemények!
Feltelepítettem egy Free SMTP szerver nevű programot.
25-ös portra van beállítva alapértelmezetten.
Az SMTP szerver "Active connections" listájában meg is jelenik a címzett email címe, a de levél nem megy már el.
mail3.php
1: <?php
2: mail("cimzett@gmail.com", "Test Subject", "Test Message");
3:
4: ?>
Hibaüzenet:
Warning: mail() [function.mail]: SMTP server response: 550 Invalid recipient: cimzett@gmail.com in C:\xampp\htdocs\mail3.php on line 2
Fatal error: Maximum execution time of 60 seconds exceeded in C:\xampp\htdocs\mail3.php on line 4
php.ini
[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 = postmaster@localhost
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
;sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
- A hozzászóláshoz be kell jelentkezni
Hello!
Még mindig a gmail-en keresztül próbálsz levelezni? Mert ha igen akkor ez a hibaüzenet feltehetőleg azért van mert nem authentikálsz a gmail-hez. A sima mail fügvény meg erre nem alkalmas.
Üdv.
- A hozzászóláshoz be kell jelentkezni
nem a GMail-en keresztül, hanem egy GMail-os címre próbálok küldeni levelet egy helyi Free SMTP Server-en keresztül. Egy mezei, 25-ös portra állított, autentikációt nem igénylő szerver. Ki van engedve a tűzfalamon.
- A hozzászóláshoz be kell jelentkezni
telnettel be tudsz lepni arra a 25-os portra? ISP nem blokkolja?
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
ez a saját gépemen fut.... localhost internet nélkül is el kell hogy érjem és el is érem a saját SMTP szerveremet, ami ugyanazon a gépen fut, mint az Apache. csak a szerver nem küldi már tovább a levelet a megadott címre.
- A hozzászóláshoz be kell jelentkezni
Hello!
Mert a távoli szerveren lehet hogy nem történik meg az azonosítás.
Üdv.
- A hozzászóláshoz be kell jelentkezni
Simam mukodik a GMail Phpmailer mi is azzal hasznaljuk. A neten van egy patch azt fel kell tenni hozza aztan ennyi.
--
1 leszel vagy 0 élő vagy hulla!
- A hozzászóláshoz be kell jelentkezni
tudsz mondani egy verziószámot amivel tényleg működik +patch hozzá? az 5-östől már óvaintettek.
- A hozzászóláshoz be kell jelentkezni
Ha irsz privatot akkor elkuldom neked ossze csomagolva aztan csak ki kell tolteni adatokal.
--
1 leszel vagy 0 élő vagy hulla!
- A hozzászóláshoz be kell jelentkezni
köszi.
pm megy
- A hozzászóláshoz be kell jelentkezni
?
- A hozzászóláshoz be kell jelentkezni
melyik verziót érdemes használnom és hol találhatok hozzá patch-et?
szerk.: vagy létezik ingyenes IIS SMTP szerver?
- A hozzászóláshoz be kell jelentkezni
:S
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
megnéztem, az apache betölti az SSL modult.
Az XAMPP 1.7.3 van nekem, PHP 5.3.1 -el.
találtam egy ilyet: http://izzaldeen.blogspot.com/2009/11/enable-open-ssl-in-xampp.html
Az XAMPP php.ini fájljában nem szerepelet a ";extension=php_openssl.dll" sor és az "ext" könyvtár sem tartalmazta a "php_openssl.dll" fájlt.
Letöltöttem egy windows-os PHP 5.3.1-et és kimásoltam belőle a "php_openssl.dll" -t. De az apache nem hajlandó indítani így a PHP modult, a következő hibaüzenetet dobja:
"PHP Startup: Unable to load dynamic library 'C:\xampp\php\ext\php_openssl.dll' - Az alkalmazást nem sikerült elindítani, mert a konfigurációja helytelen. Az alkalmazás újratelepítése megoldhatja a problémát."
szerk.: (H)up!
up!
szerk.:
-Hahó....! Van itt valaki? ... Ez már nem vicces.... :S
- A hozzászóláshoz be kell jelentkezni
visszatértem a sanmail-re.
http://forums.oreilly.com/content/Head-First-PHP-MySQL/17930/Using-Goog…
ez megoldotta a dolgot.
- A hozzászóláshoz be kell jelentkezni