Drupal nie umie wysłać maila aktywacyjnego :/

Problem wygląda następująco:

W Strona główna › Zarządzaj › Konfiguracja witryny zmieniłem adres e-mail z pustego (po instalacji) na własny.

Przed tą zmianą bez problemu mogłem zarejestrować nowego użytkownika, oraz aktywować go po przyjściu maila. Po zmianie gdy rejestruje nowego użytkownika wyświetla się następujący błąd:

warning: Newlines aren't allowed in the Subject header. Mail not sent. in /home/pasterz/pu­blic_html/~cis­co/includes/com­mon.inc on line 1986.

Jak usunąć ten problem?
Pozdrawiam,
Szymon.

Poprawiłem formatowanie wpisu.
AT

Sposób wyświetlania odpowiedzi

Wybierz preferowany sposób wyświetlania odpowiedzi i kliknij "Zachowaj ustawienia", by wprowadzić zmiany.
Portret użytkownika archetwist

Stosuj się proszę do

moderator

Stosuj się proszę do instrukcji umieszczonych w formularzu dodawania wpisu, czyli formatuj tekst, oznaczaj cytaty i wklejany kod.

Komunikat Newlines aren't allowed in the Subject header sugeruje, że powinieneś usunąć znaki nowych linii z pola tematu wiadomości (właściwie pól) na stronie Ustawienia użytkowników w dziale zarządzania. Znaki te będą się zapewne przejawiać jako puste miejsca za tekstem.

design www drupal

W porządku, na pewno

W porządku, na pewno będę się stosował do wskazówek.

Co do problemu, to niestety nie ma w formularzu w panelu administracyjnym znaków nowej linii. W jakim pliku jest to zapisywane w drupalu, może tam jest jakiś błąd? I dlaczego wszystko było ok, do czasu jak wpisałem e-mali w panelu administracyjnym w podstawowych danych?

Poniżej kod od 1980 linii do 1987 linii z pliku common.inc:

}
return mail(
$to,
mime_header_encode($subject),
str_replace("\r", '', $body),
join("\n", $mimeheaders)
);
}

Czyli błąd wskazuje na przedostatnią linię. Do czego służy funkcja ‚mime_header_en­code’ bo niestety nie umiem znaleźć tej funkcji w manualu php?

W którym pliku i gdzie znajduje sie zapisany adres e-mail z formularza w panelu administracyjnym z ‚Strona główna › Zarządzaj › Konfiguracja witryny’, czyli z ‚Zarządzaj › Konfiguracja witryny › Podstawowe dane’? Spróbuję usunąć tego maila i sprawdzić czy zniknie błąd, w formularzu się niestety nie da, bo jest zabezpieczony.

Jakieś inne propozycje na temat rozwiązania tego problemu? Pozdrawiam, Szymon.

Portret użytkownika archetwist

Zamiast apostrofów do

moderator

Zamiast apostrofów do oznaczenia cytowanych krótkich fragmentów stosuj znaczniki opisane pod Krótki cytat.

A co do problemu, to wydaje mi się jednak, że chodzi o znaki w treści tytułu wiadomości. Potwierdza to sam komunikat błędu, jak i informacje na ten temat, które znalazłem w sieci.

design www drupal

Wszystko się zgadza :]

Wszystko się zgadza :] Problem polegał na tym, że funkcja mail, która wysyła e-mail składa się z trzech parametrów: do, tytuł i treść, a serwer, który czyta php z reguły czyta pierwsze 50 znaków linii (zależy jak jest skonfigurowany), a potem automatycznie wstawia znak nowej linii i czyta dalej, albo jakoś tak to było, musiałbym zajrzeć do specyfikacji, a za późno już :p Teoretycznie w moim przypadku wyglądało to następująco: serwer podczas wykonywania funkcji mail w drugim parametrze, odpowiadającym za tytuł sam ucinał go i wrzucał do nowej i dlatego wyskakiwał błąd. Teraz trochę skróciłem tematy i jest już wszystko ok. Pozdrawiam, Szymon.

Portret użytkownika archetwist

Dziwna sprawa. Grunt, że

moderator

Dziwna sprawa. Grunt, że sobie poradziłeś ;) .

design www drupal

Miałem ten sam problem.

Miałem ten sam problem. Funkcja w PHP mime_header_en­code() rozbija dłuższe ciągi na wiersze o określonej długości.

Ja zmieniłem w common.inc ten fragment na:

return mail(
      $to,
      str_replace("\n", '',mime_header_encode($subject)), //$debug_subject,
      str_replace("\r", '', $body),
      join("\n", $mimeheaders)
    );

i teraz nie muszę skracać długości tytułu. Ten zakodowany tytuł jest oczywiście w kilku częściach jak jest dłuższy, ale w jednej linii i działa dobrze.

Portret użytkownika dudzislaw

pomogło, dziękuję :)

witajcie,

miałem ten sam problem, ale kod, który podałesz teraz bezproblemowo działa :)

dziękuję i pozdrawiam,

Dudzisław

U mnie drupal też nie

U mnie drupal też nie wysyła maili aktywacyjnych – pojawia sie taki błąd:

warning: mail(): Bad parameters to mail() function, mail not sent. in /hsphere/local/ho­me/aneta/krakow­skiedzieciaki­.pl/drupal-5.6/includes/com­mon.inc on line 1991

Kod w common.inc wygląda tak:

1986 return mail(
1987 $to,
1988 mime_header_encode($subject),
1989 str_replace("\r", '', $body),
1990 join("\n", $mimeheaders)
1991 );
1992 }
1993 }
1994

Jest to o tyle dziwne, że w innym serwisie kod jest taki sam i tam poczta działa.

Co mam zrobić, żeby maile ruszyły?

wysyłanie maili

u mnie zadziałała zmiana, którą opisałem w tym wątku

To było w Drupalu 5.1 ale działa i w ostatnich wersjach (ciekawostka, u mnie Drupal ver 5.6 nie wymagał takich poprawek a 5.7 i owszem)

pozdrawiam

TBM

Witam, aj także mam

Witam, aj także mam problem z wysyłaniem maili ale błąd i ściezka do pliku jest zupełnie inna:

* warning: Newlines aren't allowed in the Subject header. Mail not sent. in /home/retmanat/public_html/includes/mail.inc on line 191.
* Wysłanie wiadomości e-mail jest niemożliwe. Jeśli problem występuje stale, proszę skontaktować się z administratorem.

(skróciłem nawet nazwe witryny do ' a ' i nadal to samo.)

Drupal 6.1

Ale ze mnie gapa… daje może się komuś przyda do wersji 6.1 zmień na: return mail(

$message['to'],
str_replace("\n", '',mime_header_encode($message['subject'])), //$debug_subject,
// Note: e-mail uses CRLF for line-endings, but PHP's API requires LF.
// They will appear correctly in the actual e-mail that is sent.
str_replace("\r", '', $message['body']),
join("\n", $mimeheaders)
);