<?php
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$from = 'From: yoursite.com';
$to = '[email protected]';
$subject = 'Customer Inquiry';
$body = "From: $name\n E-Mail: $email\n Message:\n $message";
if ($_POST['submit']) {
if (mail ($to, $subject, $body, $from)) {
echo '<p>Your message has been sent!</p>';
} else {
echo '<p>Something went wrong, go back and try again!</p>';
}
}
?>
Próbowałem utworzyć prosty formularz poczty. Sam formularz znajduje się na mojej index.html
stronie, ale przechodzi na osobną stronę „dziękuję za przesłanie” thankyou.php
, na której znajduje się powyższy kod PHP. Kod przesyła się idealnie, ale nigdy nie wysyła wiadomości e-mail. Jak mogę to naprawić?
$from
Odpowiedzi:
Chociaż istnieją części tej odpowiedzi, które dotyczą tylko korzystania z
mail()
samej funkcji, wiele z tych kroków rozwiązywania problemów można zastosować do dowolnego systemu pocztowego PHP.Istnieje wiele powodów, dla których skrypt nie wysyła wiadomości e-mail. Trudno jest zdiagnozować te rzeczy, chyba że wystąpi oczywisty błąd składniowy. Bez tego musisz przejrzeć poniższą listę kontrolną, aby znaleźć potencjalne pułapki, które możesz napotkać.
Upewnij się, że raportowanie błędów jest włączone i ustawione na zgłaszanie wszystkich błędów
Zgłaszanie błędów jest niezbędne do usuwania błędów w kodzie i ogólnych błędów napotykanych przez PHP. Aby otrzymywać te błędy, należy włączyć raportowanie błędów. Umieszczenie następującego kodu na górze plików PHP (lub w głównym pliku konfiguracyjnym) umożliwi raportowanie błędów.
Zobacz Jak mogę uzyskać przydatne komunikaty o błędach w PHP? - ta odpowiedź zawiera więcej szczegółów na ten temat.
Upewnij się, że
mail()
funkcja została wywołanaMoże się to wydawać głupie, ale częstym błędem jest zapomnienie o umieszczeniu
mail()
funkcji w kodzie. Upewnij się, że tam jest i nie jest komentowany.Upewnij się, że
mail()
funkcja została poprawnie wywołanaFunkcja poczty przyjmuje trzy wymagane parametry i opcjonalnie czwarty i piąty. Jeśli Twoje wezwanie do
mail()
nie ma co najmniej trzech parametrów, zakończy się niepowodzeniem.Jeśli Twoje wezwanie do
mail()
nie ma poprawnych parametrów we właściwej kolejności, również się nie powiedzie.Sprawdź dzienniki poczty serwera
Twój serwer internetowy powinien rejestrować wszystkie próby wysłania za jego pośrednictwem wiadomości e-mail. Lokalizacja tych dzienników będzie się różnić (być może będziesz musiał zapytać administratora serwera, gdzie się znajdują), ale zwykle można je znaleźć w katalogu głównym użytkownika pod
logs
. Wewnątrz znajdują się komunikaty o błędach, które serwer zgłosił, jeśli takie istnieją, związane z próbami wysłania wiadomości e-mail.Sprawdź awarię połączenia z portem
Blok portów jest bardzo częstym problemem, z którym zmaga się większość programistów, integrując swój kod w celu dostarczania wiadomości e-mail za pomocą SMTP. I można to łatwo prześledzić na serwerach maillogs (lokalizacja serwera dziennika poczty może się różnić w zależności od serwera, jak wyjaśniono powyżej). W przypadku korzystania z udostępnionego serwera hostingowego porty 25 i 587 pozostają domyślnie zablokowane. Ten blok został celowo wykonany przez Twojego dostawcę hostingu. Dotyczy to nawet niektórych serwerów dedykowanych. Gdy te porty są zablokowane, spróbuj połączyć się przy użyciu portu 2525. Jeśli okaże się, że ten port jest również zablokowany, jedynym rozwiązaniem jest skontaktowanie się z dostawcą usług hostingowych w celu odblokowania tych portów.
Większość dostawców hostingu blokuje te porty e-mail, aby chronić swoją sieć przed wysyłaniem spamu.
Użyj portów 25 lub 587 dla połączeń zwykłych / TLS i portu 465 dla połączeń SSL. W przypadku większości użytkowników zaleca się użycie portu 587, aby uniknąć limitów prędkości ustalanych przez niektórych dostawców hostingu.
Nie używaj operatora eliminacji błędów
Kiedy operator tłumienia błędów
@
jest dołączony do wyrażenia w PHP, wszelkie komunikaty o błędach, które mogą być generowane przez to wyrażenie, zostaną zignorowane. Istnieją okoliczności, w których użycie tego operatora jest konieczne, ale wysyłanie poczty nie jest jednym z nich.Jeśli Twój kod zawiera
@mail(...)
, być może ukrywasz ważne komunikaty o błędach, które pomogą Ci to debugować. Usuń@
i sprawdź, czy zgłoszono jakiekolwiek błędy.To tylko wskazane, kiedy sprawdzić w
error_get_last()
prawo potem do konkretnych awarii.Sprawdź
mail()
wartość zwracanąmail()
Funkcja:Należy o tym pamiętać, ponieważ:
FALSE
wartość zwrotną, wiesz, że błąd polega na tym, że serwer akceptuje pocztę. Prawdopodobnie nie jest to problem z kodowaniem, ale problem z konfiguracją serwera. Musisz porozmawiać z administratorem systemu, aby dowiedzieć się, dlaczego tak się dzieje.TRUE
wartość zwrotną, nie oznacza to, że Twój e-mail na pewno zostanie wysłany. Oznacza to po prostu, że e-mail został pomyślnie wysłany do odpowiedniego modułu obsługi na serwerze przez PHP. Jest jeszcze więcej punktów awarii, na które nie ma wpływu PHP, które mogą spowodować, że wiadomość e-mail nie zostanie wysłana.Więc
FALSE
pomogą skierować Cię w dobrym kierunku, natomiastTRUE
ma nie musi oznaczać, e-mail został wysłany pomyślnie. Należy to zauważyć!Upewnij się, że twój dostawca hostingu pozwala ci wysyłać e-maile i nie ogranicza wysyłania e-maili
Wielu współdzielonych webhostów, zwłaszcza darmowych dostawców hostingu, albo nie zezwala na wysyłanie e-maili z ich serwerów, albo ogranicza ilość, którą można wysłać w danym okresie. Wynika to z ich starań, aby spamerzy nie mogli korzystać z tańszych usług.
Jeśli uważasz, że Twój host ma ograniczenia dotyczące wysyłania wiadomości e-mail lub blokuje wysyłanie wiadomości e-mail, zapoznaj się z często zadawanymi pytaniami, aby sprawdzić, czy zawierają takie ograniczenia. W przeciwnym razie może być konieczne skontaktowanie się z obsługą klienta w celu sprawdzenia, czy istnieją jakieś ograniczenia dotyczące wysyłania wiadomości e-mail.
Sprawdź foldery spamu; zapobiegać oznaczaniu wiadomości e-mail jako spam
Często z różnych powodów wiadomości e-mail wysyłane przez PHP (i inne języki programowania po stronie serwera) trafiają do folderu spamu odbiorcy. Zawsze sprawdzaj tam przed rozwiązaniem problemu z kodem.
Aby uniknąć wysyłania poczty wysyłanej przez PHP do folderu spamu odbiorcy, możesz wykonywać różne czynności, zarówno w kodzie PHP, jak i w inny sposób, aby zminimalizować szanse, że wiadomości e-mail zostaną oznaczone jako spam. Dobre wskazówki Michiela de Mare obejmują:
Zobacz Jak się upewnić, że wiadomości e-mail wysyłane programowo nie są automatycznie oznaczane jako spam? więcej na ten temat.
Upewnij się, że wszystkie nagłówki wiadomości są dostarczone
Niektóre programy spamujące odrzucają pocztę, jeśli brakuje w niej wspólnych nagłówków, takich jak „Od” i „Odpowiedź”:
Upewnij się, że nagłówki wiadomości nie zawierają błędów składniowych
Nieprawidłowe nagłówki są tak samo złe, jak brak nagłówków. Wystarczy jeden niepoprawny znak, aby wykoleić Twój e-mail. Sprawdź dokładnie, czy Twoja składnia jest poprawna, ponieważ PHP nie wykryje tych błędów.
Nie używaj fałszywego
From:
nadawcyChociaż poczta musi mieć nadawcę From:, nie możesz po prostu użyć żadnej wartości. W szczególności adresy wysyłane przez użytkowników są pewnym sposobem na zablokowanie wiadomości e-mail:
Powód: twój serwer internetowy lub wysyłający nie jest na białej liście SPF / DKIM, aby udawać, że jest odpowiedzialny za adresy @hotmail lub @gmail. Może nawet po cichu upuszczać wiadomości e-mail z
From:
domenami nadawców, dla których nie jest skonfigurowany.Upewnij się, że wartość odbiorcy jest poprawna
Czasami problem jest tak prosty, jak niepoprawna wartość dla odbiorcy wiadomości e-mail. Może to być spowodowane użyciem niepoprawnej zmiennej.
Innym sposobem na sprawdzenie tego jest utrwalenie wartości odbiorcy w
mail()
wywołaniu funkcji:Może to dotyczyć wszystkich
mail()
parametrów.Wyślij na wiele kont
Aby wykluczyć problemy z kontem e-mail, wyślij wiadomość e-mail na wiele kont e-mail u różnych dostawców poczty e-mail . Jeśli wiadomości e-mail nie docierają do konta Gmail użytkownika, wyślij te same wiadomości e-mail na konto Yahoo, Hotmail i zwykłe konto POP3 (takie jak konto e-mail dostarczone przez dostawcę usług internetowych).
Jeśli wiadomości e-mail dotrą do wszystkich lub niektórych innych kont e-mail, wiesz, że Twój kod wysyła wiadomości e-mail, ale prawdopodobnie dostawca kont e-mail blokuje je z jakiegoś powodu. Jeśli wiadomość e-mail nie dotrze do żadnego konta e-mail, problem najprawdopodobniej będzie związany z Twoim kodem.
Upewnij się, że kod odpowiada metodzie formularza
Jeśli ustawiłeś metodę formularza na
POST
, upewnij się, że używasz$_POST
do szukania wartości formularza. Jeśli ustawiłeśGET
lub w ogóle go nie ustawiłeś, upewnij się, że używasz$_GET
do szukania wartości formularza.Upewnij się, że
action
wartość formularza wskazuje prawidłową lokalizacjęUpewnij się, że
action
atrybut formularza zawiera wartość wskazującą na kod pocztowy PHP.Upewnij się, że host obsługuje wysyłanie wiadomości e-mail
Niektórzy dostawcy usług hostingowych nie zezwalają ani nie umożliwiają wysyłania wiadomości e-mail za pośrednictwem swoich serwerów. Przyczyny tego mogą być różne, ale jeśli wyłączyli wysyłanie poczty, będziesz musiał użyć alternatywnej metody, która korzysta z usług strony trzeciej, aby wysłać te wiadomości e-mail za Ciebie.
Wiadomość e-mail do pomocy technicznej (po podróży do pomocy technicznej online lub FAQ) powinna wyjaśnić, czy funkcje poczty e-mail są dostępne na twoim serwerze.
Upewnij się, że
localhost
serwer pocztowy jest skonfigurowanyJeśli programujesz na lokalnej stacji roboczej za pomocą WAMP, MAMP lub XAMPP, serwer e-mail prawdopodobnie nie jest zainstalowany na twojej stacji roboczej. Bez niego PHP nie może domyślnie wysyłać poczty.
Możesz temu zaradzić, instalując podstawowy serwer pocztowy. W systemie Windows możesz skorzystać z bezpłatnej poczty Mercury .
Możesz również użyć SMTP do wysyłania wiadomości e-mail. Zobacz tę wielką odpowiedź od Vikas Dwivedi aby dowiedzieć się jak to zrobić.
Włącz niestandardowe PHP
mail.log
Oprócz pliku dziennika MTA i PHP możesz włączyć rejestrowanie dla tej
mail()
funkcji . Nie rejestruje pełnej interakcji SMTP, ale przynajmniej parametry wywołania funkcji i skrypt wywołania.Szczegółowe informacje można znaleźć na stronie http://php.net/manual/en/mail.configuration.php . (Najlepiej włączyć te opcje w
php.ini
lub.user.ini
lub.htaccess
.)Sprawdź za pomocą usługi testowania poczty
Istnieją różne usługi sprawdzania dostawy i spamowania, których możesz użyć do przetestowania konfiguracji MTA / serwera WWW. Zazwyczaj wysyłasz sondę pocztową na adres:, a następnie otrzymujesz raport doręczenia i więcej konkretnych awarii lub analiz później:
Użyj innego programu pocztowego
Wbudowana
mail()
funkcja PHP jest przydatna i często wykonuje zadanie, ale ma swoje wady . Na szczęście istnieją alternatywy, które oferują większą moc i elastyczność, w tym radzenie sobie z wieloma problemami opisanymi powyżej:Wszystko to można połączyć z profesjonalnym serwerem / dostawcą usług SMTP. (Ponieważ typowe wspólne plany hostingowe 08/15 są trafione lub pominięte, jeśli chodzi o konfigurację / konfigurację poczty e-mail)
źródło
mail()
, robi tak kiepską robotę i jest trudniejszy do debugowania niż jakakolwiek inna biblioteka pocztyDodaj nagłówek wiadomości w funkcji poczty:
źródło
źródło
Jeśli używasz konfiguracji SMTP do wysyłania wiadomości e-mail, spróbuj zamiast tego użyć PHPMailer . Możesz pobrać bibliotekę ze strony https://github.com/PHPMailer/PHPMailer .
Mój e-mail utworzyłem w ten sposób:
źródło
Po prostu dodaj nagłówki przed wysłaniem wiadomości:
I jeszcze jedno.
mail()
Funkcja nie działa w localhost. Prześlij swój kod na serwer i spróbuj.źródło
$from = 'From: yoursite.com';
który nie wygląda na pełny poprawny adres e-mail, nie ma części lokalnej. Zastąpiłeś nagłówek From i dodałeś dodatkowe. A raczej$from
powyższe jest niepotrzebne w twoim przykładzie. A zniekształcenie było prawdopodobnie pierwotnym problemem PO.Działa dla mnie na 000webhost, wykonując następujące czynności:
Wpisz bezpośrednio adres e-mail podczas wysyłania wiadomości e-mail:
Użyj
''
i nie""
.Ten kod działa, ale wiadomość e-mail została odebrana z półgodzinnym opóźnieniem.
źródło
Przeważnie
mail()
funkcja jest wyłączona w hostingu współdzielonym. Lepszą opcją jest użycie SMTP. Najlepszą opcją byłby Gmail lub SendGrid.SMTPconfig.php
SMTPmail.php
contact_email.php
źródło
Jeśli używasz tylko tej
mail()
funkcji, musisz wypełnić plik konfiguracyjny.Musisz otworzyć rozszerzenie poczty, ustawić
SMTP smtp_port
itd. I, co najważniejsze, swoją nazwę użytkownika i hasło. Bez tego poczta nie może zostać wysłana. Możesz także użyć tejPHPMail
klasy do wysłania.źródło
Wypróbuj te dwie rzeczy osobno i razem:
if($_POST['submit']){}
$from
(tylko moje jelita)źródło
Myślę, że to powinno wystarczyć. Właśnie dodałem
if(isset
i dodałem konkatenację do zmiennych w ciele, aby oddzielić PHP od HTML.źródło
Dla każdego, kto uzna to za postęp, nie polecam używania
mail
. Jest kilka odpowiedzi na to pytanie, ale nie dlaczego .mail
Funkcja PHP jest nie tylko nieprzezroczysta, ale w pełni opiera się na MTA, którego używasz (tj. Sendmail ) do wykonywania pracy.mail
będzie tylko powiedzieć, jeśli MTA nie udało się go przyjąć (tj Sendmail spadł podczas próby wysłania). Nie może powiedzieć, czy poczta się powiodła, ponieważ została przekazana. Jako takie (jak szczegóły odpowiedzi Johna Conde'a ), możesz teraz bawić się dziennikami MTA i mieć nadzieję, że powie ci wystarczająco dużo o tym, że nie udało się go naprawić. Jeśli korzystasz z hosta współdzielonego lub nie masz dostępu do dzienników MTA, nie masz szczęścia. Niestety, domyślne ustawienia dla większości instalacji waniliowych dla Linuksa obsługują to w ten sposób.Biblioteka poczty ( PHPMailer , Zend Framework 2+ itp.) Robi coś zupełnie innego
mail
. Otwierają gniazdo bezpośrednio do odbierającego serwera poczty, a następnie wysyłają polecenia poczty SMTP bezpośrednio przez to gniazdo. Innymi słowy, klasa działa jak własny MTA (zwróć uwagę, że możeszmail
polecić bibliotekom, by ostatecznie wysłały pocztę, ale zdecydowanie zalecam, abyś tego nie robił).Oznacza to, że możesz bezpośrednio zobaczyć odpowiedzi z serwera odbierającego (na przykład w PHPMailer możesz włączyć wyjście debugowania ). Nigdy więcej zgadywania, czy wiadomość nie została wysłana i dlaczego.
Otrzymasz również korzyść z lepszego interfejsu. Ponieważ
mail
musisz skonfigurować wszystkie nagłówki, załączniki itp. Dzięki bibliotece masz do tego dedykowaną funkcję. Oznacza to również, że funkcja wykonuje wszystkie trudne części (takie jak nagłówki).źródło
źródło
Możesz użyć e-maila konfiguracyjnego CodeIgniter . Na przykład za pomocą SMTP (prosty sposób):
Mi to pasuje!
źródło
Spróbuj tego
źródło
Być może problemem jest konfiguracja serwera pocztowego. Aby uniknąć tego typu problemów lub nie musisz się martwić o problem z serwerem pocztowym, zalecamy korzystanie z PHPMailer .
Jest to wtyczka, która ma wszystko, co niezbędne do wysyłania poczty, a jedyną rzeczą, którą musisz wziąć pod uwagę, jest włączenie portu SMTP (Port: 25 i 465).
źródło
Upewnij się, że masz zainstalowany Sendmail na swoim serwerze.
Jeśli sprawdziłeś kod i sprawdziłeś, że nie ma w tym nic złego, przejdź do / var / mail i sprawdź, czy ten folder jest pusty.
Jeśli jest pusty, musisz wykonać:
jeśli jesteś na serwerze Ubuntu.
źródło
Przede wszystkim możesz mieć zbyt wiele parametrów dla funkcji mail () ... Możesz mieć maksymalnie pięć,
mail(to, subject, message, headers, parameters);
Jeśli chodzi o
$from
zmienną, powinna ona automatycznie pochodzić z twojego hosta, jeśli używasz Linuksa cPanel . Automatycznie pochodzi od nazwy użytkownika i adresu IP cPanel.Upewnij się także, że masz prawidłową kolejność zmiennych w funkcji mail ().
W
mail($to, $subject, $message, etc.)
tej kolejności, w przeciwnym razie istnieje szansa, że nie zadziała.źródło
Jeśli masz problemy z wysyłaniem maili z PHP, należy rozważyć alternatywę jak PHPMailer lub SwiftMailer .
Zwykle używam SwiftMailer za każdym razem, gdy potrzebuję wysyłać maile za pomocą PHP.
Podstawowe użycie:
Zobacz oficjalną dokumentację, aby uzyskać więcej informacji na temat korzystania z SwiftMailer.
źródło
Dla tych, którzy nie chcą korzystać z zewnętrznych programów pocztowych i chcą wysyłać pocztę () na dedykowanym serwerze Linux.
Sposób, w jaki maile PHP, opisano
php.ini
w rozdziale[mail function]
.Parametr
sendmail-path
opisuje, jak wywoływany jest sendmail. Wartością domyślną jestsendmail -t -i
, więc jeśli dostaniesz działającąsendmail -t -i < message.txt
konsolę Linux - to koniec. Możesz także dodaćmail.log
do debugowania i upewnić się, że mail () jest naprawdę wywoływany.Można wdrożyć różne MTA
sendmail
. Po prostu tworzą symboliczne łącze do swoich plików binarnych pod tą nazwą. Na przykład w Debianie domyślnym jest Postfix . Skonfiguruj MTA do wysyłania poczty i przetestuj go z konsoli za pomocąsendmail -v -t -i < message.txt
. Plikmessage.txt
powinien zawierać wszystkie nagłówki wiadomości oraz treść, adres docelowy koperty zostanie pobrany zTo:
nagłówka. Przykład:Wolę używać ssmtp jako MTA, ponieważ jest prosty i nie wymaga uruchamiania demona z otwartymi portami. ssmtp pasuje tylko do wysyłania poczty z hosta lokalnego . Może również wysyłać uwierzytelnione wiadomości e-mail za pośrednictwem konta w publicznej usłudze pocztowej. Zainstaluj ssmtp i edytuj plik konfiguracyjny
/etc/ssmtp/ssmtp.conf
. Aby móc również odbierać pocztę systemu lokalnego na konta Unix (na przykład alerty o rootowaniu z zadań crona), skonfiguruj/etc/ssmtp/revaliases
plik.Oto moja konfiguracja mojego konta na poczcie Yandex:
źródło
Wpłynie to tylko na niewielką garstkę użytkowników, ale chciałbym, aby zostało to udokumentowane dla tej małej garstki. Ten niewielki garstka spędził 6 godzin na rozwiązywaniu problemów z działającym skryptem pocztowym PHP z powodu tego problemu.
Jeśli wybierasz się na uniwersytet prowadzący XAMPP z www.AceITLab.com, powinieneś wiedzieć, czego nasz profesor nam nie powiedział: Zapora AceITLab (nie zapora systemu Windows) blokuje MercuryMail w XAMPP. Będziesz musiał użyć alternatywnego klienta pocztowego, gruszka dla nas pracuje. Musisz wysłać na konto Gmail z niskim poziomem zabezpieczeń.
Tak, wiem, jest to całkowicie bezużyteczne w przypadku wiadomości e-mail z prawdziwego świata. Jednak z tego, co widziałem, środowiska akademickie i rzeczywisty świat często mają ze sobą niewiele wspólnego.
źródło
Jeśli uruchamiasz ten kod na serwerze lokalnym (tj. Na komputerze w celach programistycznych), wiadomość e-mail nie zostanie wysłana do odbiorcy. Utworzy
.txt
plik w folderze o nazwiemailoutput
.W przypadku korzystania z bezpłatnej usługi węży, takiej jak
000webhost
lubhostinger
, dostawcy usług wyłączająmail()
funkcję, aby zapobiec niezamierzonemu wykorzystywaniu fałszowania wiadomości e-mail, spamowania itp. Wolę, abyś skontaktował się z nimi, aby sprawdzić, czy obsługują tę funkcję.Jeśli masz pewność, że usługodawca obsługuje funkcję mail (), możesz sprawdzić ten podręcznik PHP w celu uzyskania dalszych informacji,
Poczta PHP ()
Aby sprawdzić, czy Twoja usługa hostingowa obsługuje funkcję mail (), spróbuj uruchomić ten kod (pamiętaj, aby zmienić adres e-mail odbiorcy) :
źródło
Instalacja Sendmaila dla Debiana 10.0.0 („Buster”) była w rzeczywistości trywialna!
php.ini
Standardowa instalacja pakietu sendmaila (zezwalająca na „wysyłanie”):
Różne przydatne polecenia:
Weryfikacja (możliwości wysyłania)
Powyższe zajęło około 5 minut. Potem zmarnowałem 5 godzin ... Nie zapomnij sprawdzić folderu ze spamem !
źródło
Istnieje kilka możliwości:
Masz problem z serwerem. Serwer nie ma żadnego serwera poczty. Twoja poczta nie działa, ponieważ kod działa poprawnie, a poczta działa z typem.
Nie otrzymujesz zaksięgowanej wartości. Wypróbuj swój kod o wartości statycznej.
Wysyłaj pocztę za pomocą wiadomości SMTP ...
źródło
Możesz użyć libmail: http://lwest.free.fr/doc/php/lib/index.php3?page=mail&lang=en
źródło
mail()
opakowanie funkcji. Dodaje tylko konstrukcję wiadomości i kilka sztuczek.Możesz zobaczyć swoje błędy poprzez:
A mój przykładowy kod to:
źródło
SMTPDebug = 0
nie jest pomocny. Zwykłe „hasło” nie będzie działać z Gmailem. Ta odpowiedź niewiele tu wnosi.Pod warunkiem, że twój system sendmail działa, twój kod musi zostać zmodyfikowany w następujący sposób:
Umożliwia to wysyłanie wiadomości e-mail opartych na języku HTML.
Godne uwagi:
Uwaga:
<<<EOB
składnia wymaga, aby ostatni znacznik EOB zaczynał się od początku linii i nie ma spacji ani żadnego innego znaku po średniku.źródło