הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   ()PHP mail על שרת WIN, בעיה בשם השולח... (https://hosts.co.il/forums/showthread.php?t=21492)

itrigalo 09-05-06 17:20

()PHP mail על שרת WIN, בעיה בשם השולח...
 
בשביל לשלוח דרך שרת WIN חייבים להוסיף את השורה (אחרי הרבה ניסויים):
ציטוט:

ini_set("sendmail_from","contact@ofri-jewelry.com");

הבעיה שאני רוצה לראות את השם של השולח במייל שמגיע (בשדה from), מה שרואים כרגע זה contact@ofri-jewelry.com.
ניסיתי להעזר במשתנה נוסף אבל המשתנה ini_set דורס את הקיים כנראה.
מה אפשר לעשות?
קובץ ה-PHP:
PHP קוד:

<?php

ini_set
("sendmail_from","contact@ofri-jewelry.com");

//Check whether the submission is made
if(isset($_POST['hidSubmit'])){

//Declarate the necessary variables
$mail_to='contact@ofri-jewelry.com';
$mail_Name=$_POST['txtName'];
$mail_from=$_POST['txtEmailfrm'];
$mail_Sub=$_POST['txtSub'];
$mail_msg=$_POST['txtMsg'];

//Check for success/failure of delivery
if(mail($mail_to,$mail_Name,$mail_Sub,$mail_msg,"From:$mail_from/r/nReply-to:$mail_from"))
echo 
"<span class='textred'>E-mail has been sent successfully from $mail_from to $mail_to</span>";
else
echo 
"<span class='textred'>Failed to send the E-mail from $mail_from to $mail_to</span>";
}
?>


הדף הניסיוני כמו שהוא ברשת:
http://www.ofri-jewelry.com/contactphp.htm

תודה לעוזרים.

onemancrew 09-05-06 17:35

שלום לך,
שמי אילן ואני מחברת האחסון ווינר סרב בכתובת
www.wserv.co.il

בשרת ווינדוס תחת קובץ
PHP.INI
מוגדר כתובת האימייל של ה FROM
כלומר כל אימייל שנוצר ע"י פונקציית MAIL של PHP
אז השדה FROM הוא לפי מה שמוגדר ב
PHP.INI
ולמי שיש שליטה על זה זה בעל השרת
בנוסף יש דרך לפתור את זה וזה כבר תלוי בתצורה שה PHP רץ על השרת שלך

יש שני תצורות
CGI
ISAPI כלומר IIS API

כאשר השרת מריץ PHP בתצורה של CGI אז קיימת יכולת לשים קובץ php.ini ואז שם ניתן להגדיר את שדה ה FROM

בברכה,
אילן גולדמן
חברת ווינר סרב
www.wserv.co.il
משרד : 086443913
נייד :

itrigalo 09-05-06 17:45

אילן, תודה על התגובה.
דבר ראשון - השרת הוא לא שלי אלא של חברה מסחרית אצלה אני מאחסן בתשלום, ולכן אין לי גישה לקבצים ואני גם לא יודע באיזו תצורת PHP הם משתמשים.
דבר שני - מה שאתה אומר זה שבקובץ PHP.INI אפשר להכניס נתון, אבל אני מניח שהוא יהיה סטטי אז זה לא עוזר לנו... (או שאני טועה).
דבר שלישי - ישנו משתנה:
PHP קוד:

$mail_from=$_POST['txtEmailfrm']; 

שאותו אני רוצה להכניס ב-FROM.
לדעתי חייבת להיות דרך עקיפה, רק צריך למצוא אותה.

שוב תודה.

RS324 09-05-06 20:05

ציטוט:

נכתב במקור על ידי itrigalo
אילן, תודה על התגובה.
דבר ראשון - השרת הוא לא שלי אלא של חברה מסחרית אצלה אני מאחסן בתשלום, ולכן אין לי גישה לקבצים ואני גם לא יודע באיזו תצורת PHP הם משתמשים.
דבר שני - מה שאתה אומר זה שבקובץ PHP.INI אפשר להכניס נתון, אבל אני מניח שהוא יהיה סטטי אז זה לא עוזר לנו... (או שאני טועה).
דבר שלישי - ישנו משתנה:
PHP קוד:

$mail_from=$_POST['txtEmailfrm']; 

שאותו אני רוצה להכניס ב-FROM.
לדעתי חייבת להיות דרך עקיפה, רק צריך למצוא אותה.

שוב תודה.


תנסה לעשות ככה :

PHP קוד:

$header "Return-Path: lostpass@website.net\n";
$header .= "X-Sender: lostpass@website.net\n";
$header .= "From: This is my website <lostpass@website.net>\n";
$header .= "X-Mailer:PHP 5.1\n";
$header .= "MIME-Version: 1.0\n"

תשנה את המשתנים לפי מה שאתה צריך, ובפונקציה של המייל יש לך אפשרות לשים HEADER
נפרד משלך אז תכניס שם את הערך $header

itrigalo 09-05-06 20:30

לא כ"כ הבנתי.
הערך $header מחולק להרבה פרמטרים כמו שהראת.
אני צריך משתנה אחד מתוך כל זה שהוא X-Sender או From (איזה מהם?).
ואיך ואיפה בדיוק אני שותל את זה בקוד שיש לי כרגע?

אגב, הקוד העכשווי:
"From:$mail_from/r/nReply-to:$mail_from"
זה לא עושה כלום משום מה.

RS324 09-05-06 21:08

ציטוט:

נכתב במקור על ידי itrigalo
לא כ"כ הבנתי.
הערך $header מחולק להרבה פרמטרים כמו שהראת.
אני צריך משתנה אחד מתוך כל זה שהוא X-Sender או From (איזה מהם?).
ואיך ואיפה בדיוק אני שותל את זה בקוד שיש לי כרגע?

אגב, הקוד העכשווי:
"From:$mail_from/r/nReply-to:$mail_from"
זה לא עושה כלום משום מה.

בסוף הוא מתחבר להיות שורה אחת

ואתה שולח ככה :
PHP קוד:

mail($to,subject,$message,$header); 

וזה אמור לעבוד...

itrigalo 09-05-06 21:43

תודה, אני אבדוק.
עריכה: זה אכן עובד!!
אבל אני צריך עוד קצת עזרה בסיסית ב-PHP (אין לי מושג בזה).
אני צריך שבמקום השורה המקורית:
PHP קוד:

$header .= "From: This is my website <lostpass@website.net>\n"

לדלות נתונים שבאים מהטופס ב-POST, אבל כנראה שיש לי בעיית סינטקס פה:
PHP קוד:

$header .= "From: "$_POST['txtName']" <"$_POST['txtEmailfrm']">\n"

מישהו יכול לתקן/לעזור?
תודה.

עריכה: תוקן:
PHP קוד:

$header .= "From: ".$_POST['txtName']."<".$_POST['txtEmailfrm'].">\n"

יש לי בעיה נוספת:
אם אני מכניס בטופס למשתנה txtName ערך בעברית זה חותך אותו משום מה.
למשל אם אני כותב שם:
ניסים משעל
אני מקבל:
יסים על


הבעיה קיימת רק בעברית, באנגלית אין בעיה.
שוב תודה.

RS324 09-05-06 22:15

איפה אתה מקבל את זה ?
במייל שהתקבל אצלך ?

itrigalo 09-05-06 22:23

כן.
בשדה של המשתנה txtName בטופס אני מכניס "ניסים משעל"
וכשזה מגיע למייל שם השולח מופיע כ- "יסים על"
אבל שוב, רק בעברית.

RS324 09-05-06 22:55

יכול להיות שזה בעיה בקידוד

תנסה לעשות את זה :

PHP קוד:

$message .= "Content-Type: text/html; charset=windows-1255";
    
$message .= $_POST['message']; 

כמובן ש POST[MESSAGE] זה ההודעה שהמשתמש שלח מהטופס.


כל הזמנים הם GMT +2. הזמן כעת הוא 06:03.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ