Премини към съдържанието

Препоръчан отговор


Здравейте,

 

Искам да си направя работеща контактна форма в уебсайта и за целта реших да използвам и по-специално чрез функцията mail. Проблемът е че не работи и нямам идея защо. Някой може ли да ме упъти към правилния път?

mail( "kalata958@gmail.com", "Subject" , "Content" );

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Само това ли сте написали в скрипта ?

Ако е само това, ще Ви трябва още доста от скрипта за да проработи.

Пробвайте този:

<?php 
$action=$_REQUEST['action']; 
if ($action=="")    /* display the contact form */ 
    { 
    ?> 
    <form  action="" method="POST" enctype="multipart/form-data"> 
    <input type="hidden" name="action" value="submit"> 
    Your name:<br> 
    <input name="name" type="text" value="" size="30"/><br> 
    Your email:<br> 
    <input name="email" type="text" value="" size="30"/><br> 
    Your message:<br> 
    <textarea name="message" rows="7" cols="30"></textarea><br> 
    <input type="submit" value="Send email"/> 
    </form> 
    <?php 
    }  
else                /* send the submitted data */ 
    { 
    $name=$_REQUEST['name']; 
    $email=$_REQUEST['email']; 
    $message=$_REQUEST['message']; 
    if (($name=="")||($email=="")||($message=="")) 
        { 
        echo "All fields are required, please fill <a href=\"\">the form</a> again."; 
        } 
    else{         
        $from="From: $name<$email>\r\nReturn-path: $email"; 
        $subject="Message sent using your contact form"; 
        mail("youremail@yoursite.com", $subject, $message, $from); 
        echo "Email sent!"; 
        } 
    }   
?> 

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Принципно аз имам html форма и пробвах да взимам от текстовите полета с пост метод и да проверявам дали не са празни, но нищо не се получи и затова реших да дам стойности литерали във функцията, за да видя дали работи. Ще пробвам отново и ще пиша.

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

А настроил ли си PHP да изпраща електронни писма?

Виж каква стойност връща функцията mail().

 

Документацията за тази функция е тук.

  • Харесва ми 2

Сподели този отговор


Линк към този отговор
Сподели в други сайтове
...

 

Returns TRUE if the mail was successfully accepted for delivery, FALSE otherwise.

It is important to note that just because the mail was accepted for delivery, it does NOT mean the mail will actually reach the intended destination.

 

С думи прости и да връща Истина е все тая. Функцията е приела аргументите за валидни и ги е пуснала по канала. Истина и PHP e до тук.

Следва да се разбере кой е пощенския агент на хоста, тоест, в самата ОС-ма. Как е организран, защото той дефакто изпраща писмото и взаимодейства по синджира с другите пощенски сървъри. За целта достъп до конзолата

# mail -s “Hello world” you@youremailid.com

или питане към админа на хоста по въпроса.


  • Харесва ми 3

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Намерих една възможна причина защо не маже да се пращат мейли в PHP. В stackoverflow пише, че можеш да пращаш мейли само ако са на твоя сървър, не можеш да пращаш на публични като на gmail.

Редактирано от frozener (преглед на промените)

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Нямам. Сигурно ми трябва този сървър за да изпращам? Не съм запознат с това ще потърся и ме интересува как става връзката с хостинг услугата?

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Ето едно видео на Иван Ванков (gatakka), от което можеш да разбереш как става цялата работа: 

  • Харесва ми 1

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

 

Returns TRUE if the mail was successfully accepted for delivery, FALSE otherwise.

It is important to note that just because the mail was accepted for delivery, it does NOT mean the mail will actually reach the intended destination.

 

С думи прости и да връща Истина е все тая. Функцията е приела аргументите за валидни и ги е пуснала по канала. Истина и PHP e до тук.

Следва да се разбере кой е пощенския агент на хоста, тоест, в самата ОС-ма. Как е организран, защото той дефакто изпраща писмото и взаимодейства по синджира с другите пощенски сървъри. За целта достъп до конзолата

# mail -s “Hello world” you@youremailid.com

или питане към админа на хоста по въпроса.

 

 

Не е все тая, защото отговора на тези въпроси ще покаже къде е проблема или по-скоро къде не е.

Аз се надявах автора да каже, че не е правил нищо, защото си плаща за хостинг и тогава трябва да пита админите, ако върнатата стойност на функцията беше TRUE. Ако беше станало ясно че работи на собствения си компютър, то вероятно щеше да ползва Windows, а за него му трябва допълнителен и правилно настроен mail сървър.

 

Но защо отговаряш ти, а не автора на темата на тези въпроси???

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Не е все тая, защото отговора на тези въпроси ще покаже къде е проблема или по-скоро къде не е.

Аз се надявах автора да каже, че не е правил нищо, защото си плаща за хостинг и тогава трябва да пита админите, ако върнатата стойност на функцията беше TRUE. Ако беше станало ясно че работи на собствения си компютър, то вероятно щеше да ползва Windows, а за него му трябва допълнителен и правилно настроен mail сървър.

 

Но защо отговаряш ти, а не автора на темата на тези въпроси???

Ами първо пробвах локално. Мислех си, че само трябва да използвам функцията без да мисля за сървъри.

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

на хоста ви ако е от Суперхостинг в настройките трябва да има за SMTP Сървър вижте там и настройте РНР да праща мейли от php.ini

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Регистрирайте се или влезете в профила си за да коментирате

Трябва да имате регистрация за да може да коментирате това

Регистрирайте се

Създайте нова регистрация в нашия форум. Лесно е!

Нова регистрация

Вход

Имате регистрация? Влезте от тук.

Вход

×

Информация

Поставихме бисквитки на устройството ви за най-добро потребителско изживяване. Можете да промените настройките си за бисквитки, или в противен случай приемаме, че сте съгласни с нашите условия за ползване.