Автор Тема: Не мога да изпратя e-mail чрез PHP  (Прочетена 6391 пъти)

3p0

  • Участник
  • *****
  • Публикации: 338
    • Профил
Чета от MySQL база данни, дали има новорегистриран/и потребител/и ако има такъв/такива трябва да изпратя e-mail с тект "Добре дошъл ...";
Функцията за изпращане на e-mail връща истина, обаче, не се получава e-mail, защото аз тествам, дали работи и проверявам е-мейла за такова съобщение - няма !
Някакви тънкости ли има при изпращане на e-mail PHP функцията
Код:
mail(to,subject,message,headers,parameters);
?
Активен

PC1: Intel® Celeron® CPU G540 2.50GHz; MB=Gigabyte GA-H81M-S2H rev.1.0; RAM=16Гб DDR3; VIDEO=SAPPHIRE ATI RADEON 4850.
PC2: AMD Athlon (tm) 64 X2 Dual Core Processor 5400+ 2.80 GHz; MB=GIGABYTE M61PME-S2P; RAM=8Гб DDR2; Video=NVIDIA nForce 6150SE (6100-430) - built in the MB.

remotexx

  • Участник
  • *****
  • Публикации: 773
    • Профил
Re: Не мога да изпратя e-mail чрез PHP
« Отговор #1 -: Ное 27, 2017, 01:25 »
А функцията ти от кой пощенски сървър (подател) към кой пощенски сървър (получател) ги праща?
- Ако е само локално би трябвало да работи - освен ако не е в спама или виж там да нямаш външен спам/джънк филтър който ги блокира/изтрива.
- Ако е някой 'глобален' (Яху, Гугъл, Хотмейл и т.н.) обик. освен правилно регистриран пощенски сървър (ДНС запис) правят вече и още една проверка за валидност - SPF
и трето - провери ли и в спама?
 П.П. А отскоро искат и ръчкане по настройките напр. Гугъл
Access for less secure apps section, select Turn on
https://www.codexworld.com/how-to-send-email-from-localhost-in-php/

П.П.П. накратко - всичките тези изпълнени ли са за изпращащия пощенски сървър (ако пращаш да външен, а ако пращаш локално какви RBL/greylist ползваш - спри ги само за теста)
http://blog.whitesites.com/Reverse-DNS-SPF-Grey-listing-and-RBL-Guides__633558235579468063_blog.htm
« Последна редакция: Ное 27, 2017, 01:26 от remotexx »
Активен

Naka

  • Участник
  • *****
  • Публикации: 2630
    • Профил
Re: Не мога да изпратя e-mail чрез PHP
« Отговор #2 -: Ное 27, 2017, 12:49 »
1. Варянт едно. Нямаш правилна настройка в php и/или не си инсталирал някой майл сървър. препоръчвам ти за най лесно да сложиш Postfix.

виж това http://php.net/manual/bg/mail.configuration.php
а също изхода при тебе от phpinfo() и виж къде ти сочи sendmail_path

да не те заблуди името sendmail_path. Няма нищо общо със sendmail - само така се казва директивата. Там където сочи директивата може да е само линк към истинският ти майл сървър. Например при мен е:

sendmail_path:   /usr/sbin/sendmail -t -i
/usr/sbin/sendmail -> /var/qmail/bin/sendmail (само link към qmail)

а пък  /var/qmail/bin/sendmail е някакво програмче от пакета qmail дето емулира сендмаил. Като инсталираш например Postfix той предполагам ще оправи тези линкове и ще презапише /usr/sbin/sendmail да сочи към него.

------------------
2. Варянт две. Всичко ти е настроено но провайдера ти блокира 25 изходящ порт. Масова практика е. Мамицата им >:(
Или IP-то ти попапа в някоя спам дата база и оттам всички големи майл провайдери те режат. Виж си ИП-то дали не е листвано в някоя
spam BLACKLIST database
https://mxtoolbox.com/blacklists.aspx

Да ти кажа какво се случва.

пускаш mail(). тя работи успешно и инжектира майла например в Postfix.
Mайла отива в опашката на чакащите да се изпращат съобщения.
Понеже обращението към Postfix е минало успешно нямаш върната грешка в php.

Обаче Postfix след това се пробва няколко пъти (сега или по-късно пак) да достави мейла и ако не може трябва да ти върне писмо че не успял. Т.е за тебе единствената 'обратна връзка' ще бъде това върнато писмо за неуспех.




 
« Последна редакция: Ное 27, 2017, 13:12 от Naka »
Активен

Perl - the only language that looks the same before and after encryption.

3p0

  • Участник
  • *****
  • Публикации: 338
    • Профил
Re: Не мога да изпратя e-mail чрез PHP
« Отговор #3 -: Ное 27, 2017, 20:06 »
Май по-добре да си купя сигнален пистолет и да се гръмна.
Това е цяла наука!!!

Активен

PC1: Intel® Celeron® CPU G540 2.50GHz; MB=Gigabyte GA-H81M-S2H rev.1.0; RAM=16Гб DDR3; VIDEO=SAPPHIRE ATI RADEON 4850.
PC2: AMD Athlon (tm) 64 X2 Dual Core Processor 5400+ 2.80 GHz; MB=GIGABYTE M61PME-S2P; RAM=8Гб DDR2; Video=NVIDIA nForce 6150SE (6100-430) - built in the MB.

jet

  • Участник
  • *****
  • Публикации: 1796
  • Distribution: debian sid
  • Window Manager: kde
    • Профил
Активен

Linux: From WTF to OMG

3p0

  • Участник
  • *****
  • Публикации: 338
    • Профил
Re: Не мога да изпратя e-mail чрез PHP
« Отговор #5 -: Ное 28, 2017, 08:13 »
Или пробвай със sendemail
https://askubuntu.com/questions/12917/how-to-send-mail-from-the-command-line/13118#13118
Довечера ще пробвам със sendemail и дано се получи ....
Изглежда в PHP ще е команда от такъв вид:
Код:
shell_exec ( sendemail -f fromuser@gmail.com -t touser@domain.com -u subject -m "message" -s smtp.gmail.com:587 -o tls=yes -xu gmailaccount@gmail.com -xp gmailpassword )
Активен

PC1: Intel® Celeron® CPU G540 2.50GHz; MB=Gigabyte GA-H81M-S2H rev.1.0; RAM=16Гб DDR3; VIDEO=SAPPHIRE ATI RADEON 4850.
PC2: AMD Athlon (tm) 64 X2 Dual Core Processor 5400+ 2.80 GHz; MB=GIGABYTE M61PME-S2P; RAM=8Гб DDR2; Video=NVIDIA nForce 6150SE (6100-430) - built in the MB.

3p0

  • Участник
  • *****
  • Публикации: 338
    • Профил
Re: Не мога да изпратя e-mail чрез PHP
« Отговор #6 -: Дек 20, 2017, 00:12 »
Чак сега успях, да изпратя е-мейл чрез PHP-код.
По-добре късно, отколкото никога  ;D

P.S. Уточнявам, че снощи успях да изпратя е-мейл от домашния ми компютър под openSUSE.
Днес не успявам да изпратя е-мейл от мой сайт, който е на free hosting - има IP адрес в UK и от Google ми блокираха е-мейл адреса, чрез който се опитвам да изпратя е-мейли, като ме информираха, че някой ми знае паролата в UK и с го блокирали, питат ме дали съм аз и аз глупака им обясних, че се опитвам от мой сайт да изпратя автоматичен е-мейл и те вместо да ми преммахнат бликировката на е-мейл адреса, продължават да го държат блокиран. Сега си мисля, че просто трябваше да им отговоря без обяснения, че тази активност е моя, но сега вече е късно и сам си направих пречки, може би те не разрешават такива автоматични е-мейли - по дяволите !!!!
« Последна редакция: Дек 20, 2017, 16:33 от 3p0 »
Активен

PC1: Intel® Celeron® CPU G540 2.50GHz; MB=Gigabyte GA-H81M-S2H rev.1.0; RAM=16Гб DDR3; VIDEO=SAPPHIRE ATI RADEON 4850.
PC2: AMD Athlon (tm) 64 X2 Dual Core Processor 5400+ 2.80 GHz; MB=GIGABYTE M61PME-S2P; RAM=8Гб DDR2; Video=NVIDIA nForce 6150SE (6100-430) - built in the MB.

Naka

  • Участник
  • *****
  • Публикации: 2630
    • Профил
Re: Не мога да изпратя e-mail чрез PHP
« Отговор #7 -: Дек 20, 2017, 17:38 »
Няма такави работи да се блокират автоматични емаили. Всички сайтове, cms-и, форуми, даже и този изпращат потвърждаващи е-майли при регистрация, забравена парола и т.н. Такива неща никой няма право да блокира - особено за хостинг.

Нали знаеш каква е разликата между SPAM и не спам. Спама е когато никой не си е дал съгласието да му се праща майл - това означава и самият термин. А когато се изпраща нещо за потвърждение, то юзера това го е поискал или се е съгласил, - най-малкото си е дал имейла. Защо да си го дава ако не е за използване?

Обесни им че php CMS система изпраща потвърждаващ емайл при регистрация и ако ти откажат ги заплаши че пречат на свободната комуникация, евроценностите 8), налагат цензура и прочие гръмки думи.


« Последна редакция: Дек 20, 2017, 17:55 от Naka »
Активен

Perl - the only language that looks the same before and after encryption.

makeme

  • Участник
  • *****
  • Публикации: 629
  • Distribution: Many
  • Window Manager: Mate
    • Профил
Re: Не мога да изпратя e-mail чрез PHP
« Отговор #8 -: Дек 20, 2017, 17:54 »
Предполагам, че колегата няма предвид, че гугъл са му блокнали мейла от cms-а като спам, а че са му блокирали CMS-a да не изпраща от неговия акаунт (клиент, който се връзва и изпраща от гугълския сървър).
Активен

Distributions:  UbuntuMate 14.04; 15.10; 16.04, CentOS 6.x, 7.x, Kali 2.0 ...

3p0

  • Участник
  • *****
  • Публикации: 338
    • Профил
Re: Не мога да изпратя e-mail чрез PHP
« Отговор #9 -: Дек 20, 2017, 19:04 »
Снощи на домашния ми компютър регистрирах мой гугълски е-мейл адрес под openSUSE в Тъндърбърд - Тъндърбърд ми показа точно данните, които ми трябваха за настройка на изпращане на е-мейл през гугълския е-мейл адрес до друг е-мейл адрес. В PHP-скрипт въведох правилните настройки и изпращането на е-мейл адрес стана успешно през Гугъл до друг адрес - Гугъл не пречи, защото това става от моя IP-address.
Днес аналогично се опитвах, да приложа вече известните ми настройки на същия гугълски мой е-мейл адрес, но да изпратя през него е-мейл от free-hosting сайт, чийто сървър явно е в UK и понеже трябва да въведа както е-мейл адреса, така и паролата за достъп, Google тъкува опита за влизане в е-мейл адреса откъм UK, като евентуален неправомерен достъп от някой, който според тях ми е откраднал паролата за достъп до е-мейл адреса ми в Гугъл.
Те блокират всеки опит от моя PHP - скрипт откъм хостинга и ми пращат е-мейл, в който ме питат дали съм аз този, който се опитва да влезе откъм UK. Аз обърках нещата, като влезнах в обяснителен режим, вместо да кажа, че съм аз откъм там и да се приключи случая ....
В същото време PHP-кода в хостинга дава грешки и не изпраща е-мейл, защото Google го възпрепятстват да влезе, макар и с истинска парола.
И сега не знам работи ли този скрипт откъм хостинга или не. Аз им писах, да разрешат откъм IP-адреса от UK, но те се правят на интересни, само по едно време ми звънна телефона и някакъв тип ме пита на английски, дали съм аз, аз понеже имам трудности с разбирането на говорим английски, казах, че: I don't speak english, той ми каза: Have a nice day и аз му казах: Have a nice day. Пак сме в патова ситуация защото аз им пиша на английски да разрешат достъпа, а пък по телефона има казвам, че не говоря английски и сигурно ме мислят за луд. А пък аз 50% от говоримия английски не го разбирам, иначе аз като пиша използвам само думи, които знам и се получава излюзията, че знам английски ;D
Общо взето тотална каша - ТЕ МЕ ЗАЩИТАВАТ ОТ САМИЯ МЕН - браво на Гугъл!
« Последна редакция: Дек 20, 2017, 19:21 от 3p0 »
Активен

PC1: Intel® Celeron® CPU G540 2.50GHz; MB=Gigabyte GA-H81M-S2H rev.1.0; RAM=16Гб DDR3; VIDEO=SAPPHIRE ATI RADEON 4850.
PC2: AMD Athlon (tm) 64 X2 Dual Core Processor 5400+ 2.80 GHz; MB=GIGABYTE M61PME-S2P; RAM=8Гб DDR2; Video=NVIDIA nForce 6150SE (6100-430) - built in the MB.

Naka

  • Участник
  • *****
  • Публикации: 2630
    • Профил
Re: Не мога да изпратя e-mail чрез PHP
« Отговор #10 -: Дек 21, 2017, 12:07 »
Цитат
А пък аз 50% от говоримия английски не го разбирам, иначе аз като пиша използвам само думи, които знам и се получава излюзията, че знам английски ;D

Абе ти нали владееше над шест милиона форми на комуникация  ???
« Последна редакция: Дек 21, 2017, 12:21 от Naka »
Активен

Perl - the only language that looks the same before and after encryption.

3p0

  • Участник
  • *****
  • Публикации: 338
    • Профил
Re: Не мога да изпратя e-mail чрез PHP
« Отговор #11 -: Дек 21, 2017, 13:31 »
Цитат
А пък аз 50% от говоримия английски не го разбирам, иначе аз като пиша използвам само думи, които знам и се получава излюзията, че знам английски ;D

Абе ти нали владееше над шест милиона форми на комуникация  ???
Сменен ми е чипа и вече съм друг вид дроид - некомуникационен дроид - майтап >:D
На free-hosting имам право на 5 е-мейл адреса, създадох един, за да го ползвам за комуникация с евентуалните регистриращи се, но Тъндърбърд не може да открие данните за този е-мейл адрес при въвеждане на името и параолата за достъп, както направи с е-мейл адреса в Google (gmail.com).
Единствената възможност която ми остава е ако видя регистриран човек с е-мейл адрес, аз да изпращам е-мейл за добре дошъл - неавтоматично, а ръчно.
Активен

PC1: Intel® Celeron® CPU G540 2.50GHz; MB=Gigabyte GA-H81M-S2H rev.1.0; RAM=16Гб DDR3; VIDEO=SAPPHIRE ATI RADEON 4850.
PC2: AMD Athlon (tm) 64 X2 Dual Core Processor 5400+ 2.80 GHz; MB=GIGABYTE M61PME-S2P; RAM=8Гб DDR2; Video=NVIDIA nForce 6150SE (6100-430) - built in the MB.

Naka

  • Участник
  • *****
  • Публикации: 2630
    • Профил
Re: Не мога да изпратя e-mail чрез PHP
« Отговор #12 -: Дек 21, 2017, 13:41 »
Според мен, така както го разбирам, бъркаш постановката.

За да изпращаш майл не ти трябва регистриран е-майл. Не ти трябва и smtp сървер посредник с име и парола, който да препраща писмата (relay). Т.е не ти трябва нещо от вида на smtp.gmail.com или там както се нарича.

Както ти казах преди трябва ти само майл програмaта (postfix,qmail,sendmail). Php като се обърне към нея тя го праща дирректо на който и да е майл адрес, а не например през smtp.gmail.com.
Активен

Perl - the only language that looks the same before and after encryption.

3p0

  • Участник
  • *****
  • Публикации: 338
    • Профил
Re: Не мога да изпратя e-mail чрез PHP
« Отговор #13 -: Дек 21, 2017, 14:29 »
На фрий-хостинга в phpinfo() пише:
Код:
sendmail_path /usr/sbin/sendmail -t -i
SMTP localhost
smtp_port 25
Евентуално, ако не мога да изпратя по нормален начин (не чрез php-код) е-мейл до друг мой е-мейл адрес в mail.bg ще си извадя заключение, че съм в някой BlackList.
У ж а с = е-мейлът още не е пристигнал в mail.bg - как така сайт който не е известен почти на никого е попаднал в Black list ?
Или фрий-хостинга блокира порт 25 за изходящи ? - имам входящи е мейли в кутията.
« Последна редакция: Дек 21, 2017, 14:47 от 3p0 »
Активен

PC1: Intel® Celeron® CPU G540 2.50GHz; MB=Gigabyte GA-H81M-S2H rev.1.0; RAM=16Гб DDR3; VIDEO=SAPPHIRE ATI RADEON 4850.
PC2: AMD Athlon (tm) 64 X2 Dual Core Processor 5400+ 2.80 GHz; MB=GIGABYTE M61PME-S2P; RAM=8Гб DDR2; Video=NVIDIA nForce 6150SE (6100-430) - built in the MB.

jet

  • Участник
  • *****
  • Публикации: 1796
  • Distribution: debian sid
  • Window Manager: kde
    • Профил
Re: Не мога да изпратя e-mail чрез PHP
« Отговор #14 -: Дек 21, 2017, 15:09 »
Според мен, така както го разбирам, бъркаш постановката.

За да изпращаш майл не ти трябва регистриран е-майл. Не ти трябва и smtp сървер посредник с име и парола, който да препраща писмата (relay). Т.е не ти трябва нещо от вида на smtp.gmail.com или там както се нарича.

Както ти казах преди трябва ти само майл програмaта (postfix,qmail,sendmail). Php като се обърне към нея тя го праща дирректо на който и да е майл адрес, а не например през smtp.gmail.com.
Да, ама така няма да минеш сума проверки за спам и големите ще те отрежат, затова е хубаво да ползваш някой "голям" СМТП
Активен

Linux: From WTF to OMG

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
Q-MAIL
Настройка на програми
therealfunky 1 1571 Последна публикация Дек 23, 2002, 10:29
от
Скриване на e-mail
Предложения за подобрения на сайта
gadmin 5 2494 Последна публикация Май 03, 2004, 17:08
от gadmin
php не праща mail
Web development
majo 11 3802 Последна публикация Фев 02, 2005, 16:12
от toxigen
Windows Mail => Linux Mail
Настройка на програми
Shadowfox 2 2865 Последна публикация Фев 08, 2005, 08:58
от
Fedora 10 Mail server (... is not an IMAP4 mail server)
Настройка на програми
insanedude 11 5357 Последна публикация Дек 11, 2009, 23:01
от laskov