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

3p0

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

MX Linux version 18 "Continuum"
PC: Intel® Celeron® CPU G540 2.50GHz; MB=Gigabyte GA-H61M-S2V-B3 rev.1.0; RAM=16Гб DDR3.

remotexx

  • Напреднали
  • *****
  • Публикации: 3210
    • Профил
Re: Не мога да изпратя e-mail чрез PHP
« Отговор #1 -: Nov 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
« Последна редакция: Nov 27, 2017, 01:26 от remotexx »
Активен

Naka

  • Напреднали
  • *****
  • Публикации: 3395
    • Профил
Re: Не мога да изпратя e-mail чрез PHP
« Отговор #2 -: Nov 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 след това се пробва няколко пъти (сега или по-късно пак) да достави мейла и ако не може трябва да ти върне писмо че не успял. Т.е за тебе единствената 'обратна връзка' ще бъде това върнато писмо за неуспех.




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

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

3p0

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

Активен

MX Linux version 18 "Continuum"
PC: Intel® Celeron® CPU G540 2.50GHz; MB=Gigabyte GA-H61M-S2V-B3 rev.1.0; RAM=16Гб DDR3.

jet

  • Напреднали
  • *****
  • Публикации: 3472
  • Distribution: debian
  • Window Manager: kde
    • Профил
Активен

..⢀⣴⠾⠻⢶⣦⠀
  ⣾⠁⢠⠒⠀⣿⡁
  ⢿⡄⠘⠷⠚⠋
  ⠈⠳⣄⠀⠀⠀⠀  Debian, the universal operating system.

3p0

  • Напреднали
  • *****
  • Публикации: 354
    • Профил
Re: Не мога да изпратя e-mail чрез PHP
« Отговор #5 -: Nov 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 )
Активен

MX Linux version 18 "Continuum"
PC: Intel® Celeron® CPU G540 2.50GHz; MB=Gigabyte GA-H61M-S2V-B3 rev.1.0; RAM=16Гб DDR3.

3p0

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

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

MX Linux version 18 "Continuum"
PC: Intel® Celeron® CPU G540 2.50GHz; MB=Gigabyte GA-H61M-S2V-B3 rev.1.0; RAM=16Гб DDR3.

Naka

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

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

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


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

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

makeme

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

Distributions:  UbuntuMate; Kubuntu; CentOS; Kali; Raspberry Pi OS ...

3p0

  • Напреднали
  • *****
  • Публикации: 354
    • Профил
Re: Не мога да изпратя e-mail чрез PHP
« Отговор #9 -: Dec 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
Общо взето тотална каша - ТЕ МЕ ЗАЩИТАВАТ ОТ САМИЯ МЕН - браво на Гугъл!
« Последна редакция: Dec 20, 2017, 19:21 от 3p0 »
Активен

MX Linux version 18 "Continuum"
PC: Intel® Celeron® CPU G540 2.50GHz; MB=Gigabyte GA-H61M-S2V-B3 rev.1.0; RAM=16Гб DDR3.

Naka

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

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

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

3p0

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

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

MX Linux version 18 "Continuum"
PC: Intel® Celeron® CPU G540 2.50GHz; MB=Gigabyte GA-H61M-S2V-B3 rev.1.0; RAM=16Гб DDR3.

Naka

  • Напреднали
  • *****
  • Публикации: 3395
    • Профил
Re: Не мога да изпратя e-mail чрез PHP
« Отговор #12 -: Dec 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

  • Напреднали
  • *****
  • Публикации: 354
    • Профил
Re: Не мога да изпратя e-mail чрез PHP
« Отговор #13 -: Dec 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 за изходящи ? - имам входящи е мейли в кутията.
« Последна редакция: Dec 21, 2017, 14:47 от 3p0 »
Активен

MX Linux version 18 "Continuum"
PC: Intel® Celeron® CPU G540 2.50GHz; MB=Gigabyte GA-H61M-S2V-B3 rev.1.0; RAM=16Гб DDR3.

jet

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

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

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

..⢀⣴⠾⠻⢶⣦⠀
  ⣾⠁⢠⠒⠀⣿⡁
  ⢿⡄⠘⠷⠚⠋
  ⠈⠳⣄⠀⠀⠀⠀  Debian, the universal operating system.