Strona 1 z 1

[Rozwiązany] Funkcja Mail w PHP-Fusion v. 7.02.04

PostNapisane: N sty 08, 12 09:28
przez tomek0o7
Otóż, mam problem jak kilka osób chodzi o wysyłanie maila kontaktowego ze strony. Niestety u mnie nie dziala, a mam adres wewnętrzny. Już tak siedze siedze i nie wiem co moze byc przyczyna...

Jeszcze zauważyłem jeden problem po dodaniu serwera smtp mail.ugu.pl wyskakuje błąd nie można się połączyć z serwerem smtp

Komunikat wyskakujący na stronie.
Kod: Zaznacz cały
Nie można wywołać funkcji mail(). Sprawdź konfigurację serwera.


Wiadomość nie została wysłana, ponieważ:

Błąd wewnętrzny! Nie można wysłać wiadomości.

Spróbuj wysłać jeszcze raz.


Kod: Zaznacz cały
if (isset($_POST['sendmessage'])) {
   $error = "";
   $mailname = substr(stripinput(trim($_POST['mailname'])), 0, 50);
   $email = substr(stripinput(trim($_POST['email'])), 0, 100);
   $subject = substr(str_replace(array("\r","\n","@"), "", descript(stripslash(trim($_POST['subject'])))), 0, 50);
   $message = descript(stripslash(trim($_POST['message'])));
   if ($mailname == "") {
      $error .= " <span class='alt'>".$locale['420']."</span><br />\n";
   }
   if ($email == "" || !preg_match("/^[-0-9A-Z_\.]{1,50}@([-0-9A-Z_\.]+\.){1,50}([0-9A-Z]){2,4}$/i", $email)) {
      $error .= " <span class='alt'>".$locale['421']."</span><br />\n";
   }
   if ($subject == "") {
      $error .= " <span class='alt'>".$locale['422']."</span><br />\n";
   }
   if ($message == "") {
      $error .= " <span class='alt'>".$locale['423']."</span><br />\n";
   }
   $_CAPTCHA_IS_VALID = false;
   include INCLUDES."captchas/".$settings['captcha']."/captcha_check.php";
   if ($_CAPTCHA_IS_VALID == false) {
      $error .= " <span class='alt'>".$locale['424']."</span><br />\n";
   }
   if (!$error) {
      require_once INCLUDES."sendmail_include.php";
      if (!sendemail($settings['siteusername'],$settings['siteemail'],$mailname,$email,$subject,$message)) {
         $error .= " <span class='alt'>".$locale['425']."</span><br />\n";
      }
   }
   if ($error) {
      opentable($locale['400']);
      echo "<div style='text-align:center'><br />\n".$locale['442']."<br /><br />\n".$error."<br />\n".$locale['443']."</div><br />\n";
      closetable();
   } else {
      opentable($locale['400']);
      echo "<div style='text-align:center'><br />\n".$locale['440']."<br /><br />\n".$locale['441']."</div><br />\n";
      closetable();
   }
} else {
   opentable($locale['400']);
   echo $locale['401']."<br /><br />\n";
   echo "<form name='userform' method='post' action='".FUSION_SELF."'>\n";
   echo "<table cellpadding='0' cellspacing='0' class='center'>\n<tr>\n";
   echo "<td width='100' class='tbl'>".$locale['402']."</td>\n";
   echo "<td class='tbl'><input type='text' name='mailname' maxlength='50' class='textbox' style='width: 200px;' /></td>\n";
   echo "</tr>\n<tr>\n";
   echo "<td width='100' class='tbl'>".$locale['403']."</td>\n";
   echo "<td class='tbl'><input type='text' name='email' maxlength='100' class='textbox' style='width: 200px;' /></td>\n";
   echo "</tr>\n<tr>\n";
   echo "<td width='100' class='tbl'>".$locale['404']."</td>\n";
   echo "<td class='tbl'><input type='text' name='subject' maxlength='50' class='textbox' style='width: 200px;' /></td>\n";
   echo "</tr>\n<tr>\n";
   echo "<td width='100' class='tbl'>".$locale['405']."</td>\n";
   echo "<td class='tbl'><textarea name='message' rows='10' class='textbox' cols='50'></textarea></td>\n";
   echo "</tr>\n<tr>\n";
   echo "<td width='100' class='tbl'>".$locale['407']."</td>\n";
   echo "<td class='tbl'>";
   include INCLUDES."captchas/".$settings['captcha']."/captcha_display.php";
   if (!isset($_CAPTCHA_HIDE_INPUT) || (isset($_CAPTCHA_HIDE_INPUT) && !$_CAPTCHA_HIDE_INPUT)) {
      echo "</td>\n</tr>\n<tr>";
      echo "<td class='tbl'><label for='captcha_code'>".$locale['408']."</label></td>\n";
      echo "<td class='tbl'>";
      echo "<input type='text' id='captcha_code' name='captcha_code' class='textbox' autocomplete='off' style='width:100px' />";

Re: Funkcja Mail - czyli stały problem...

PostNapisane: Pn sty 09, 12 04:09
przez parox
Musiałbyś podać także kod źródłowy pliku "sendmail_include.php" gdziekolwiek się on znajduje. Zaraz po jego wywołaniu, występuje funkcja: "sendemail", w której prawdopodobnie leży problem.

Może zamiast zaśmiecać forum, kodem źródłowym, podaj nam nazwę skryptu którego używasz. Może być nieco łatwiej.

Powiedz także, czy użyłeś wałkowanych już kilkukrotnie ustawień, dla SMTP? Bez nich niestety ani rusz.

Re: Funkcja Mail - czyli stały problem...

PostNapisane: Pn sty 09, 12 09:07
przez tomek0o7
Otóż korzystam z PHP-Fusion i tam juz jest niby wbudowane wysyłanie mail. Ale druga sprawa jeste poczatkujacym jesli chodzi o PHP wiec stad moze te glupie pytania i problemy...

Kod: Zaznacz cały
<?php
/*-------------------------------------------------------+
| PHP-Fusion Content Management System
| Copyright (C) 2002 - 2011 Nick Jones
| http://www.php-fusion.co.uk/
+--------------------------------------------------------+
| Filename: sendmail_include.php
| Author: Nick Jones (Digitanium)
+--------------------------------------------------------+
| This program is released as free software under the
| Affero GPL license. You can redistribute it and/or
| modify it under the terms of this license which you
| can read by viewing the included agpl.txt or online
| at www.gnu.org/licenses/agpl.html. Removal of this
| copyright header is strictly prohibited without
| written permission from the original author(s).
+--------------------------------------------------------*/
if (!defined("IN_FUSION")) { die("Access Denied"); }

function sendemail($toname, $toemail, $fromname, $fromemail, $subject, $message, $type = "plain", $cc = "", $bcc = "") {

   global $settings, $locale;
   
   require_once INCLUDES."class.phpmailer.php";
   
   $mail = new PHPMailer();
   if (file_exists(INCLUDES."language/phpmailer.lang-".$locale['phpmailer'].".php")) {
      $mail->SetLanguage($locale['phpmailer'], INCLUDES."language/");
   } else {
      $mail->SetLanguage("en", INCLUDES."language/");
   }

   if (!$settings['smtp_host']) {
      $mail->IsMAIL();
   } else {
      $mail->IsSMTP();
      $mail->Host = $settings['smtp_host'];
      $mail->Port = $settings['smtp_port'];
      $mail->SMTPAuth = (!empty($settings['smtp_username']) && !empty($settings['smtp_password'])) ? true : false;
      $mail->Username = $settings['smtp_username'];
      $mail->Password = $settings['smtp_password'];
   }
   
   $mail->CharSet = $locale['charset'];
   $mail->From = $fromemail;
   $mail->FromName = $fromname;
   $mail->AddAddress($toemail, $toname);
   $mail->AddReplyTo($fromemail, $fromname);
   if ($cc) {
      $cc = explode(", ", $cc);
      foreach ($cc as $ccaddress) {
         $mail->AddCC($ccaddress);
      }
   }
   if ($bcc) {
      $bcc = explode(", ", $bcc);
      foreach ($bcc as $bccaddress) {
         $mail->AddBCC($bccaddress);
      }
   }
   if ($type == "plain") {
      $mail->IsHTML(false);
   } else {
      $mail->IsHTML(true);
   }
   
   $mail->Subject = $subject;
   $mail->Body = $message;
   
   if(!$mail->Send()) {
      $mail->ErrorInfo;
      $mail->ClearAllRecipients();
      $mail->ClearReplyTos();
      return false;
   } else {
      $mail->ClearAllRecipients();
      $mail->ClearReplyTos();
      return true;
   }

}
?>

Re: Funkcja Mail - czyli stały problem...

PostNapisane: Pn sty 09, 12 11:34
przez parox
Co prawda nie testowałem tego, ale zapewne to pomoże.

Przejdź do panelu administracyjnego w Fusion, Ustawienia > Różne ( http://twojastrona.pl/administration/settings_misc.php )

Wypełnij poszczególne pola, wedle tych z panelu UGU. ( https://www.ugu.pl/panel/email )

Kod: Zaznacz cały
Adres serwera SMTP
Pozostaw puste, jeśli wysyłanie e-maili jest włączone.   
Port SMTP   
Użytkownik SMTP   
Hasło SMTP


Powodzenia :)

Re: Funkcja Mail - czyli stały problem...

PostNapisane: Śr sty 11, 12 22:41
przez tomek0o7
Nadal nie działa... juz mi brakuje pomysłów i sił co może z tym być... Od poczatku probowałem przez te ustawienia co sa w php :?

Re: Funkcja Mail - czyli stały problem...

PostNapisane: So sty 14, 12 18:40
przez wargo
Może bez smtp? Tylko jako adres nadawcy daj adres e-mail z ugu.pl

Re: Funkcja Mail - czyli stały problem...

PostNapisane: Śr sty 18, 12 14:16
przez tomek0o7
Obrazek

Jeśli zostawiam to też nie działa. Wtedy jest nie mozna wywołać fukcji mail a jesli wpisze dane SMTP to wyskakuje Błąd SMTP: Nie można połączyć się z wybranym hostem. i jak bylem w czrnej d*** tak nadal jestem...

Re: Funkcja Mail - czyli stały problem...

PostNapisane: Śr sty 18, 12 17:57
przez wargo
A wyżej jakie masz opcje?

Re: Funkcja Mail - czyli stały problem...

PostNapisane: Śr sty 18, 12 19:28
przez tomek0o7
Kod: Zaznacz cały
Korzystać z edytora TinyMCE?
Dotyczy artykułów i newsów.


tylko to mam wyżej to co odnosi się do wysylania maila przez strone to podałem. Ale najśmieszniejsze jest to, że jeśli chodzi o maila dotyczące aktywacji konta, przypomnienia hasła to dochodza normalnie :(

Re: Funkcja Mail - czyli stały problem...

PostNapisane: Pt sty 20, 12 14:08
przez tomek0o7
Nadal się nie daję postawiłem nowego PHP-Fusion ale starszą wersję i też są problemy ale juz inne.
Kod: Zaznacz cały
Warning: fsockopen() [function.fsockopen]: unable to connect to mail.ugu.pl:587 (Connection timed out) in /virtual/s/a/satinstall.ugu.pl/includes/class.smtp.php on line 122


A tu jest linia z smtp.class
Kod: Zaznacz cały
  118   $this->smtp_conn = fsockopen($host,    # the host of the server
           119                      $port,    # the port to use
           120                     $errno,   # error number if any
           121                      $errstr,  # error message if any
           122                      $tval);   # give up after ? secs


A jeśli pole "adres SMTP" zostawiam puste to teraz wywala to
Kod: Zaznacz cały
Wiadomość nie została wysłana, ponieważ:

ˇ Błąd wewnętrzny! Nie można wysłać wiadomości.

Spróbuj wysłać jeszcze raz.

Re: Funkcja Mail - czyli stały problem...

PostNapisane: Wt sty 24, 12 11:01
przez tomek0o7
Problem rozwiązany dotyczący v7.02.04. :) Sprawa jest dość banalna bo z tego jak wnioskuje to gdzies jest bład w pliku contact.php Rozwiązaniem tego problemu jest pobranie moda do PHP-Fusion i wrzucenie pliku contact.php w HTML5. U mnie to rozwiązało sprawe całkowicie.

Link do pliku contact.php w html5
http://mods.php-fusion.pl/downloads.php?cat_id=22&download_id=1433