|
Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
| autor |
|
lall
HV vaatleja
liitunud: 16.08.2006
|
30.07.2010 13:47:00
PHP "mailsend" probleem |
|
|
Tervist,
Säärane kood sai kokku pandud olemasoleval näidisel.
Probleem selles, et kui ma ei lisa attachmenti siis kogu kupatus läheb teele plain textina ja ilma utf-8'ta.
Kui lisada attachment, siis on kõik superhea.
Kus ma nüüd midagi nii mööda panin?
<?php
// Read POST request params into global vars
$to = "xxx.xxx@mail.ee";
$from_name = "xxx";
$from = "xxx@xxx";
$subject = "Hinnapäring kodulehelt";
$message = "<html>
<body>
<br /><b>Ruumi mõõdud suurus, köögi mõõtmed</b>: ".$_POST["element_1"]."
<br /><b>Mööbli karkass</b>: ".$_POST["element_7"]."
<br /><b>Mööbli nähtav osa</b>: ".$_POST["element_8"]."
<br /><b>Tööpind</b>: ".$_POST["element_9"]."
<br /><b>Taust</b>: ".$_POST["element_16"]."
<br /><b>Uksed</b>: ".$_POST["element_10"]."
<p>
<br /><b>Uste mehhanismid</b>:
<br /><b>Avanevad üles</b>: ".$_POST["element_11_1"]."
<br /><b>Avanevad vasakule paremale</b>: ".$_POST["element_11_2"]."
<br /><b>Muu</b>: ".$_POST["element_11_3"]."
<p>
<br /><b>Käepidemed</b>: ".$_POST["element_12"]."
<br /><b>Sahtliboksid</b>: ".$_POST["element_13"]."
<br /><b>Valamu kuju</b>: ".$_POST["element_14"]."
<br /><b>Valamu materjal</b>: ".$_POST["element_15"]."
<br /><b>Valgustus</b>: ".$_POST["element_17"]."
<br /><b>Tehnika</b>: ".$_POST["element_18"]."
<br /><b>Lisainfo</b>: ".$_POST["element_2"]."
<br /><b>Eesnimi</b>: ".$_POST["element_4_1"]."
<br /><b>Perenimi</b>: ".$_POST["element_4_2"]."
<br /><b>Meiliaadress</b>: ".$_POST["element_5"]."
<br /><b>Telefon</b>: ".$_POST["element_6"]."
</p>
</body>
</html>";
// Generate a boundary string
$semi_rand = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
// Headers
// To send HTML mail, the Content-type header must be set
$headers = "From: ".$from_name." <".$from.">" . "\r\n";
$headers .= "Reply-To: ".$from_name." <".$from.">" . "\r\n";
$headers .= "Date: ".date("r") . "\r\n";
// Additional headers
$headers .= "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-Type: multipart/alternative; boundary=\"PHP-alt-" . $semi_rand . "\"\r\n";
$headers .= "Message-Id: <" . md5(uniqid(microtime())) . "@" . $_SERVER["SERVER_NAME"] . ">\r\n";
// Obtain file upload vars
$fileatt = $_FILES['fileatt']['tmp_name'];
$fileatt_type = $_FILES['fileatt']['type'];
$fileatt_name = $_FILES['fileatt']['name'];
$headers = "From: $from";
if (is_uploaded_file($fileatt)) {
// Read the file to be attached ('rb' = read binary)
$file = fopen($fileatt,'rb');
$data = fread($file,filesize($fileatt));
fclose($file);
// Add the headers for a file attachment
$headers .= "\nMIME-Version: 1.0\n" .
"Content-Type: multipart/mixed;\n" .
" boundary=\"{$mime_boundary}\"";
// Add a multipart boundary above the plain message
$message = "This is a multi-part message in MIME format.\n\n" .
"--{$mime_boundary}\n" .
"Content-Type: text/html; charset=\"UTF-8\"\n" .
"Content-Transfer-Encoding: 7bit\n\n" .
$message . "\n\n";
// Base64 encode the file data
$data = chunk_split(base64_encode($data));
// Add file attachment to the message
$message .= "--{$mime_boundary}\n" .
"Content-Type: {$fileatt_type};\n" .
" name=\"{$fileatt_name}\"\n" .
//"Content-Disposition: attachment;\n" .
//" filename=\"{$fileatt_name}\"\n" .
"Content-Transfer-Encoding: base64\n\n" .
$data . "\n\n" .
"--{$mime_boundary}--\n";
}
// Send the message
$ok = @mail($to, $subject, $message, $headers);
if ($ok) {
echo "<p>Mail sent! Yay PHP!</p>";
}
else {
echo "<p>Mail could not be sent. Sorry!</p>";
}
?> |
|
|
| Kommentaarid: 1 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
1 |
|
| tagasi üles |
|
 |
Valdars
HV veteran

liitunud: 22.02.2003
|
30.07.2010 14:49:04
|
|
|
| "Content-Type: text/html; charset=\"UTF-8\"\n" . |
See osa peaks maili saatma UTF-8 HTML-ina. Millegipärast on see faili kaasapanekut kontrolliva if-lause sees. Proovi see ettepoole tõsta.
|
|
| Kommentaarid: 47 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
44 |
|
| tagasi üles |
|
 |
lall
HV vaatleja
liitunud: 16.08.2006
|
30.07.2010 16:26:31
|
|
|
Kõige ilmselgem jääb ju alati kahe silma vahele.
Saad aru, ma olen 2 päeva jutti seda korda üritanud saada..
Nüüd läheb meil teele html'ina ja utf-8 kodeeringuga, kuid üks kummaline asi o siiski.
Kiri on märgitud "kirjaklambriga" isegi siis kui manust pole.
See pole küll väga häiriv asjaolu, pigem prof. huvi.
<?php
// Read POST request params into global vars
$to = "xxx@mail.ee";
$from_name = "xxx";
$from = "xxx";
$subject = "Hinnapäring kodulehelt";
$message = "<html>
<body>
<br /><b>Ruumi mõõdud suurus, köögi mõõtmed</b>: ".$_POST["element_1"]."
<br /><b>Mööbli karkass</b>: ".$_POST["element_7"]."
<br /><b>Mööbli nähtav osa</b>: ".$_POST["element_8"]."
<br /><b>Tööpind</b>: ".$_POST["element_9"]."
<br /><b>Taust</b>: ".$_POST["element_16"]."
<br /><b>Uksed</b>: ".$_POST["element_10"]."
<p>
<br /><b>Uste mehhanismid</b>:
<br /><b>Avanevad üles</b>: ".$_POST["element_11_1"]."
<br /><b>Avanevad vasakule paremale</b>: ".$_POST["element_11_2"]."
<br /><b>Muu</b>: ".$_POST["element_11_3"]."
<p>
<br /><b>Käepidemed</b>: ".$_POST["element_12"]."
<br /><b>Sahtliboksid</b>: ".$_POST["element_13"]."
<br /><b>Valamu kuju</b>: ".$_POST["element_14"]."
<br /><b>Valamu materjal</b>: ".$_POST["element_15"]."
<br /><b>Valgustus</b>: ".$_POST["element_17"]."
<br /><b>Tehnika</b>: ".$_POST["element_18"]."
<br /><b>Lisainfo</b>: ".$_POST["element_2"]."
<br /><b>Eesnimi</b>: ".$_POST["element_4_1"]."
<br /><b>Perenimi</b>: ".$_POST["element_4_2"]."
<br /><b>Meiliaadress</b>: ".$_POST["element_5"]."
<br /><b>Telefon</b>: ".$_POST["element_6"]."
</p>
</body>
</html>";
// Generate a boundary string
$semi_rand = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
// Headers
// To send HTML mail, the Content-type header must be set
$headers = "From: ".$from_name." <".$from.">" . "\r\n";
$headers .= "Reply-To: ".$from_name." <".$from.">" . "\r\n";
$headers .= "Date: ".date("r") . "\r\n";
// Additional headers
$headers .= "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-Type: multipart/alternative; boundary=\"PHP-alt-" . $semi_rand . "\"\r\n";
$headers .= "Message-Id: <" . md5(uniqid(microtime())) . "@" . $_SERVER["SERVER_NAME"] . ">\r\n";
// Obtain file upload vars
$fileatt = $_FILES['fileatt']['tmp_name'];
$fileatt_type = $_FILES['fileatt']['type'];
$fileatt_name = $_FILES['fileatt']['name'];
$headers = "From: $from";
// Add the headers for a file attachment
$headers .= "\nMIME-Version: 1.0\n" .
"Content-Type: multipart/mixed;\n" .
" boundary=\"{$mime_boundary}\"";
// Add a multipart boundary above the plain message
$message = "This is a multi-part message in MIME format.\n\n" .
"--{$mime_boundary}\n" .
"Content-Type: text/html; charset=\"UTF-8\"\n" .
"Content-Transfer-Encoding: 7bit\n\n" .
$message . "\n\n";
if (is_uploaded_file($fileatt)) {
// Read the file to be attached ('rb' = read binary)
$file = fopen($fileatt,'rb');
$data = fread($file,filesize($fileatt));
fclose($file);
// Base64 encode the file data
$data = chunk_split(base64_encode($data));
// Add file attachment to the message
$message .= "--{$mime_boundary}\n" .
"Content-Type: {$fileatt_type};\n" .
" name=\"{$fileatt_name}\"\n" .
//"Content-Disposition: attachment;\n" .
//" filename=\"{$fileatt_name}\"\n" .
"Content-Transfer-Encoding: base64\n\n" .
$data . "\n\n" .
"--{$mime_boundary}--\n";
}
// Send the message
$ok = @mail($to, $subject, $message, $headers);
if ($ok) {
echo "<p>Mail sent! Yay PHP!</p>";
}
else {
echo "<p>Mail could not be sent. Sorry!</p>";
}
?> |
|
|
| Kommentaarid: 1 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
1 |
|
| tagasi üles |
|
 |
Celos
Kreisi kasutaja

liitunud: 23.08.2005
|
31.07.2010 01:51:37
|
|
|
OT: Sul maili sisus üks <p> tag sulgemata
|
|
| Kommentaarid: 16 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
15 |
|
| tagasi üles |
|
 |
karu
HV kasutaja
liitunud: 07.08.2002
|
31.07.2010 02:11:28
|
|
|
| lall kirjutas: |
Nüüd läheb meil teele html'ina ja utf-8 kodeeringuga, kuid üks kummaline asi o siiski.
Kiri on märgitud "kirjaklambriga" isegi siis kui manust pole.
|
seda teeb multipart/mixed.
ja mida peab '$headers = "From: $from";' tegema ?
|
|
| Kommentaarid: 1 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
1 |
|
| tagasi üles |
|
 |
lall
HV vaatleja
liitunud: 16.08.2006
|
02.08.2010 07:22:11
|
|
|
| Oh tänud jällegi, kood kubiseb veel vigadest, aga toimib.
|
|
| Kommentaarid: 1 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
1 |
|
| tagasi üles |
|
 |
mikk36
HV Guru

liitunud: 21.02.2004
|
02.08.2010 07:38:56
|
|
|
| Eesmärgiks on iseõppimine emaili saatmisel?
|
|
| Kommentaarid: 85 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
2 :: |
78 |
|
| tagasi üles |
|
 |
lall
HV vaatleja
liitunud: 16.08.2006
|
02.08.2010 07:55:54
|
|
|
Iseõppimine kindlasti - PHP on millegipärast jäänud minu teadmistepagasist välja.
Aga tegelikult läheb koodijupp perefirma kodukale.
Arvad, et andmete saatmine peaks mööda turvalisemat kanalit liikuma?
|
|
| Kommentaarid: 1 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
1 |
|
| tagasi üles |
|
 |
mikk36
HV Guru

liitunud: 21.02.2004
|
02.08.2010 09:22:33
|
|
|
| Ei, pigem mõtlen et kui production värk, siis soovitaks parem a'la Swift Mailerit või PHPMailerit.
|
|
| Kommentaarid: 85 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
2 :: |
78 |
|
| tagasi üles |
|
 |
lall
HV vaatleja
liitunud: 16.08.2006
|
02.08.2010 09:37:39
|
|
|
Tänud, vaatan asja üle.
Tundub, et ülesehitus on märksa lihtsam ja loogilisem küll.
|
|
| Kommentaarid: 1 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
1 |
|
| tagasi üles |
|
 |
|