 |
Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Comunitatea PHP Romania
|
| Subiectul anterior :: Subiectul următor |
| Autor |
Mesaj |
leobugg
Data înscrierii: 23/Sep/2008
Mesaje: 3
|
| Trimis: Mar Sep 23, 2008 11:04 am Titlul subiectului: nu trimite mail php |
|
|
Buna
sunt noua in zona.
Am tot cautat dar nu am gasit nimic asemanator cu problema mea.
Am un site php pe un server linux, cu php5 instalat.
Am si un forum phpbb3 legat de site. Totul e ok, am facut minuni as zice, dar am o problema grava.
Am un form pentru jobs unde cine vrea poate trimite numele ocupatia si binenteles un c.v. Am in pagina jobs.php codul html si 2 file mail_attachment.php si forminvio.php legate de modulul mail.
Il file forminvio.php am asa ceva:
Cod: <?php
$messaggio = 'prova';
$oggetto = 'Curriculum dal sito';
$achi = 'mail.........';
$dachi = $_POST['cognome'] .' '. $_POST['nome'];
$allegato = $_POST['curriculum'];
$nomeAllegato = 'curriculum';
print $dachi . '<br>';
print $allegato . '<br>';
print $_FILES['curriculum']['error'] . '<br>';
print $_FILES['curriculum']['name']. '<br>';
include "mail_attachment.php";
mail_attachment ($dachi , $achi, $oggetto, $messaggio, $allegato);
?>
Iar in mail_ attachment.php am codul urmator:
Cod: <?php
$attachment = $_FILES['curriculum']['tmp_name'];
$typefile = $_FILES['curriculum']['type'];
$name_file = $_FILES['curriculum']['name'];
$size_file = $_FILES['curriculum']['size'];
print $attachment.'<br />';
print $typefile.'<br />';
print $name_file.'<br />';
print $file_path;
function mail_attachment ($from , $to, $subject, $message, $attachment){
$fileatt = $attachment; // Path to the file
$fileatt_type = $typefile; // File Type
$start= strrpos($attachment, '/') == -1 ? strrpos($attachment, '//') : strrpos($attachment, '/')+1;
$fileatt_name = $name_file; // Filename that will be used for the file as the attachment
$email_from = $from; // Who the email is from
$email_subject = $subject; // The Subject of the email
$email_txt = $message; // Message that the email has in it
$email_to = $to; // Who the email is to
$headers = "From: ".$email_from;
if(!($file = fopen($attachment,'rb'))) echo "File failed to open";
$data = fread($file_path,$size_file);
fclose($file);
$msg_txt="";
$semi_rand = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
$headers .= "\nMIME-Version: 1.0\n" .
"Content-Type: multipart/mixed;\n" .
" boundary=\"{$mime_boundary}\"";
$email_txt .= $msg_txt;
$email_message .= "This is a multi-part message in MIME format.\n\n" .
"--{$mime_boundary}\n" .
"Content-Type:text/html; charset=\"iso-8859-1\"\n" .
"Content-Transfer-Encoding: 7bit\n\n" .
$email_txt . "\n\n";
$data = chunk_split(base64_encode($data));
$email_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";
$ok = @mail($email_to, $email_subject, $email_message, $headers);
if($ok) {
} else {
die("Sorry but the email could not be sent. Please go back and try again!");
}
}
?>
Am vorbit cu firma de la care am cumparat spatiul. Am toate permisele de acces la toate cartelel, am parcursul mailului stabilit de ei. Am tot, cred.
Da imi da eroare in site cand vrei sa trimiti mail cu attachment:
Cod: sdfs sdf
0
prova.txt
/tmp/phpMa7ykA
text/plain
prova.txt
File failed to open
Warning: fread(): supplied argument is not a valid stream resource in /home/neveralo/public_html/mail_attachment.php on line 28
Warning: fclose(): supplied argument is not a valid stream resource in /home/neveralo/public_html/mail_attachment.php on line 29
Unde gresesc??? |
|
| Sus |
|
Birkoff
Data înscrierii: 18/Mar/2004
Mesaje: 2607
Locație: Bucuresti
|
| Trimis: Mar Sep 23, 2008 11:12 am Titlul subiectului: |
|
|
la linia 28 din fisierul mail_attachment.php se incearca citirea cu functia fread() a unui fisier, dar parametrul prmit de acea functie e incorect si da eroarea specificata de tine
Ar trebui sa vezi ce anume primeste ca parametru fread si sa validezi codul astfel ca parametrul cerut sa fie bun.
mai exact
$data = fread($file_path,$size_file);
nu ai initializat in interiorul functiei $file_path,$size_file |
|
| Sus |
|
leobugg
Data înscrierii: 23/Sep/2008
Mesaje: 3
|
| Trimis: Mar Sep 23, 2008 11:25 am Titlul subiectului: |
|
|
Folosesc functia fopen ca sa valideze fread.
Cod: if(!($file = fopen($attachment,'rb'))) echo "File failed to open";
$data = fread($file_path,$size_file);
fclose($file);
$msg_txt="";
Oricum am sa ma uit din nou poate am gresit eu, totusi nici macar nu citeste ceea ce atasez la mail. |
|
| Sus |
|
Birkoff
Data înscrierii: 18/Mar/2004
Mesaje: 2607
Locație: Bucuresti
|
| Trimis: Mar Sep 23, 2008 12:08 pm Titlul subiectului: |
|
|
| eu ma referam ca in functia afisata de tine mai sus la linia cu fread ai 2 variabile care nu sunt initializate in interiorul acelei functii si php-ul nu stie ce valori sa le aloce... |
|
| Sus |
|
leobugg
Data înscrierii: 23/Sep/2008
Mesaje: 3
|
| Trimis: Mar Sep 23, 2008 1:55 pm Titlul subiectului: |
|
|
am incercat de toate si nu functioneaza, mereu acelasi mesaj.
In schimb uitandu-ma prin forumul vostru am gasit LibMail : A PHP Mail Class si am implementat varanta asta.
Functioneaza destul de bine. Trebuie doar sa imi pun manuta pe ici pe colo, dar reusesc sa trimit mesaje cu alegat din site si primesc ceea ce am trimis. Nu primesc informatiile perfecte, dar e ceva.
Sper eu sa rezolv.
Multumesc |
|
| Sus |
|
PHPRomania Bot
Bot Member
Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google |
| Trimis: Mie Dec 26, 2007 7:01 pm Titlul subiectului: Ad |
|
|
|
|
|
| Sus |
|
| |
|