W jakim pliku zmienić nadawcę wiadomości wysłanej ze strony?
|
decymka |
Dodany dnia 10.08.2015 20:40:25
|
Bywalec
Postów: 499
v7.00.07 Data rejestracji: 15.01.2006 06:16
|
Mam taki problem: nadawcą wysłanej do głównego administratora strony wiadomości (contakt.php) jest admin serwera. Napisałam do administracji serwera i otrzymałam taką odpowiedź:
To maile wysyłane z funkcji mail - trzeba im po prostu ustawić odpowiedni nagłówek (header)
Jest to opisane w example #2:
http://php.net/ma...n.mail.php
Niestety nie wiem w jakim pliku. Czy w messages.php? A jeśli tak to gdzie, w którym miejscu?
Proszę o pomoc.
...Nie bierzmy życia zbyt poważnie...
|
|
|
|
Wścibski Gość |
Dodany dnia 21.11.2024 20:21:04
|
Pan Kontekstualny
Postów: n^x
Data rejestracji: Zawsze
|
|
IP: localhost |
|
|
bartek124 |
Dodany dnia 10.08.2015 21:20:45
|
Weteran
Postów: 3264 Pomógł: 236
v7.02.06 Data rejestracji: 26.05.2007 12:25
|
Za wysyłanie emaili odpowiada biblioteka PHPMailer, więc prawdopodobnie w contact.php po wywołaniu liba
$mail = new PHPMailer;
należy dodać
$mail->SetFrom('email, 'nazwa');
proszę uważać ustawiając emaile spoza danej domeny, czyli mając domenę karaluch.pl nie można ustawić emaila z , ze względu na politykę SPF. Do tego służy nagłówek Odpowiedz do, a więc:
$mail->AddReplyTo('email, 'nazwa');
Nie pomagam na komunikatorach oraz PW!
|
|
|
|
decymka |
Dodany dnia 10.08.2015 21:57:13
|
Bywalec
Postów: 499
v7.00.07 Data rejestracji: 15.01.2006 06:16
|
Dziękuję za odpowiedź, ale i tak nie wiem co mam zrobić. Czy mogę prosić prościej albo z "męskiego na nasze"
...Nie bierzmy życia zbyt poważnie...
|
|
|
|
bartek124 |
Dodany dnia 10.08.2015 22:07:08
|
Weteran
Postów: 3264 Pomógł: 236
v7.02.06 Data rejestracji: 26.05.2007 12:25
|
Daj kod contact.php, popatrzymy
Nie pomagam na komunikatorach oraz PW!
|
|
|
|
decymka |
Dodany dnia 10.08.2015 22:13:34
|
Bywalec
Postów: 499
v7.00.07 Data rejestracji: 15.01.2006 06:16
|
<?php
/*-------------------------------------------------------+
| PHP-Fusion Content Management System
| Copyright (C) 2002 - 2008 Nick Jones
| http://www.php-fusion.co.uk/
+--------------------------------------------------------+
| Filename: contact.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 http://www.gnu.org/licenses/agpl.html. Removal of this
| copyright header is strictly prohibited without
| written permission from the original author(s).
+--------------------------------------------------------*/
require_once "maincore.php";
require_once THEMES."templates/header.php";
include LOCALE.LOCALESET."contact.php";
add_to_title($locale['global_200'].$locale['400']);
if (isset($_POST['sendmessage'])) {
include_once INCLUDES."securimage/securimage.php";
$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";
}
$securimage = new Securimage();
if (!isset($_POST['captcha_code']) || $securimage->check($_POST['captcha_code']) == 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'>";
echo "<img id='captcha' src='".INCLUDES."securimage/securimage_show.php' alt='' align='left' />\n";
echo "<a href='".INCLUDES."securimage/securimage_play.php'><img src='".INCLUDES."securimage/images/audio_icon.gif' alt='' align='top' class='tbl-border' style='margin-bottom:1px' /></a><br />\n";
echo "<a href='#' onclick=\"document.getElementById('captcha').src = '".INCLUDES."securimage/securimage_show.php?sid=' + Math.random(); return false\"><img src='".INCLUDES."securimage/images/refresh.gif' alt='' align='bottom' class='tbl-border' /></a>\n";
echo "</td>\n</tr>\n<tr>";
echo "<td class='tbl'>".$locale['408']."</td>\n";
echo "<td class='tbl'><input type='text' name='captcha_code' class='textbox' style='width:100px' /></td>\n";
echo "</tr>\n<tr>\n";
echo "<td align='center' colspan='2' class='tbl'>\n";
echo "<input type='submit' name='sendmessage' value='".$locale['406']."' class='button' /></td>\n";
echo "</tr>\n</table>\n</form>\n";
closetable();
}
require_once THEMES."templates/footer.php";
?>
...Nie bierzmy życia zbyt poważnie...
|
|
|
|
Pieka |
Dodany dnia 11.08.2015 10:14:30
|
Postów: 19882 Pomógł: 767
v7.02.03 Data rejestracji: 23.02.2005 18:12
|
Zasadniczo to powinno działać poprawnie. Może kwestią jest tu zmiana serwera + stara wersja PHP-Fusion? Nadawcą powinien być wysyłający wiadomość. Dajcie znać, jak do czegoś dojdziecie.
Jestem jaki jestem
|
|
|
|
bartek124 |
Dodany dnia 14.08.2015 23:06:07
|
Weteran
Postów: 3264 Pomógł: 236
v7.02.06 Data rejestracji: 26.05.2007 12:25
|
Nadawcą (From) nigdy nie powinien być wysyłający ze względu na to, iż użytkownik w contact form może wprowadzać email z różnych domen, a wtedy bardzo łatwo złapać filtr. Jak wspomniałem wyżej, polityka SPF tego zabrania, dlatego stosuje się From: , a reply-to jest adresem wysyłającego.
Swoją drogą, właśnie sprawdziłem plik sendmail_include.php i znalazłem:
$mail->From = $fromemail;
$mail->FromName = $fromname;
nie jest to zbyt dobra praktyka, fromemail i fromname to trzeci i czwarty parametr czyli email i nazwa wprowadzane przez użytkownika. ReplyTo się jest prawidłowo.
@decymka, masz wszystko w porządku, o ile wklejony kod to kod z Twojej strony, a nie oryginalnej paczki. Pokaż na wszelki wypadek jeszcze includes/sendmail_include.php
Nie pomagam na komunikatorach oraz PW!
|
|
|
|
decymka |
Dodany dnia 22.03.2016 17:20:39
|
Bywalec
Postów: 499
v7.00.07 Data rejestracji: 15.01.2006 06:16
|
Pozwoliłam sobie "odgrzać" temat, ponieważ znów powrócił.
Oto mój plik sendmail_include.php
<?php
/*-------------------------------------------------------+
| PHP-Fusion Content Management System
| Copyright (C) 2002 - 2008 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 http://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->SMTPAuth = true;
$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;
}
}
?>
Proszę o pomoc.
...Nie bierzmy życia zbyt poważnie...
|
|
|