Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.71/68: Рейтинг темы: голосов - 68, средняя оценка - 4.71
Vitalik010979
0 / 0 / 0
Регистрация: 07.09.2011
Сообщений: 5
1

PHP Скрипт для отправки почты

07.09.2011, 23:51. Просмотров 12631. Ответов 22
Метки нет (Все метки)

Админ ПОМОГИ У меня PHP скрипт для отправки письма на почту заборохлил Он РАБОТАЕТ но вложения файлов приходят пустыми 0кб
Вот Скрипт
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
<?php 
$message_in_min = 10000; 
$mode = $HTTP_POST_VARS['mode']; 
 
switch($mode){ 
 case 'send': 
   if(isset($HTTP_POST_FILES['filename']['tmp_name'])){ 
     $base_name = $HTTP_POST_FILES['filename']['name']; 
     $f = fopen($HTTP_POST_FILES['filename']['tmp_name'],"rb"); 
     $attach = base64_encode(fread($f,filesize($HTTP_POST_FILES['filename']['tmp_name']))); 
     $isfile = 1; 
   } 
   else {$isfile = 0;} 
   # Проверки ##################################################    ############### 
   $from = $HTTP_POST_VARS['from']; 
   if(empty($from)){echo("Неуказан адрес отправителя");exit;} 
   else if(!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i",$from)){echo("$from - не верный адрес отправителя"); exit;} 
   $fromname = @$HTTP_POST_VARS['fromname']; 
   if(isset($fromname)){$from = $fromname." <$from>";} 
   $subject = $HTTP_POST_VARS['subject']; 
   $subject =  htmlspecialchars(stripslashes($subject)); 
   if(!$subject){echo("Опять же, кто будет писать тему сообщения?");} 
   $type = $HTTP_POST_VARS['type']; 
   $message = $HTTP_POST_VARS['message']; 
   if($type == 'text'){$message =  htmlspecialchars(stripslashes($message));} 
   if(!$message){echo("Короче, нужно что то написать. Где сообщение-то?"); exit;} 
   ##################################################    ########################## 
   $to_arr = file(@$HTTP_POST_FILES['to']['tmp_name']); 
   // print_r($to_arr);exit; 
   $to_arr = array_unique($to_arr); 
   $i = 0; 
   $current_message= 0; 
   $num_send = 0; 
   $num_bad  = 0; 
   $num_error= 0; 
   while(isset($to_arr[$i])){ 
     $to_arr[$i] = trim($to_arr[$i]); 
     if(!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i",$to_arr[$i])){ 
       echo($to_arr[$i].' - голимый адрес, я на его отправлять ничего не собираюсь'."<br>\n"); 
       $num_bad++; 
     } 
     else{ 
       if(sendemail($from,$to_arr[$i],$subject,$message,$type)){ 
         echo('Сообщение на '.$to_arr[$i]." отправлено<br>\n"); flush(); 
         $num_send++; 
       } 
       else{$num_error++;} 
     } 
     $current_message++; 
     if($current_message == $message_in_min){ 
       $current_message = 0; 
       echo('Отправлено '.$message_in_min.' соообщений. Пауза 60 сек.'."<br>\n"); 
       flush(); 
       sleep(30); 
       echo('<!---->'."\n"); 
       flush(); 
       sleep(30); 
     } 
     $i++; 
   } 
   echo('<hr size="1" color="#000000">Рассылка завершена!<br>'."\n"); 
   echo(' 
     <b>Отправлено  : '.$num_send.'</b> 
     <b>Ошибок связи: '.$num_error.'</b> 
     <b>Плохих email: '.$num_bad.'</b> 
     <hr size="1" color="#000000"> 
   '); 
 break; 
 default: 
   echo(' 
<div align="center"> 
<h1>Рассылка писем</h1> 
<form method="post" enctype="multipart/form-data"> 
<table align="center" border="0"> 
<tr> 
 <td align="right" bgcolor="#EBEBEB"><strong>От кого (Имя):</strong></td> 
 <td><input type="Text" class="inp" name="fromname" value="" size="30"> * - Не обязательно. Например, Пупкин И.И.</td> 
</tr> 
<tr> 
 <td align="right" bgcolor="#EBEBEB"><strong>От кого (Email):</strong></td> 
 <td><input type="Text" class="inp" name="from" value="" size="30"> * - Только email адрес</td> 
</tr> 
<tr> 
 <td align="right" bgcolor="#EBEBEB"><strong>Кому:</strong></td> 
 <td><input type="File" name="to" class="inp" size="68"></td> 
</tr> 
<tr> 
 <td align="right" bgcolor="#EBEBEB"><strong>Тема:</strong></td> 
 <td><input type="Text" class="inp" name="subject" value="" size="80"></td> 
</tr> 
<tr> 
 <td valign="top" align="right" bgcolor="#EBEBEB"><strong>Сообщение:</strong></td> 
 <td><textarea name="message" rows="10" cols="82" class="inp"></textarea></td> 
</tr>
<tr> 
 <td valign="top" align="right" bgcolor="#EBEBEB"><strong>Прикрепить файл:</strong></td> 
 <td><input type="file" name="filename" class="inp" size="68"></td> 
</tr>
 
<tr> 
 <td align="right" bgcolor="#EBEBEB"><strong>Формат</strong></td> 
 <td> 
 
<table width="100%"> 
<tr> 
 <td width="20"><input class="inp" type="Radio" name="type" value="text" checked></td> 
 <td width="40">text    </td> 
 <td width="20"><input class="inp" type="Radio" name="type" value="html"></td> 
 <td width="40">html</td> 
 <td align="right"><input type="Hidden" name="mode" value="send"><input type="Submit" class="inp" value="Отправить"></td> 
</tr> 
</table> 
 
</td> 
</tr> 
<tr> 
 <td bgcolor="#EBEBEB"></td> 
 <td><hr size="3" color="#F7F7F7"></td> 
</tr> 
</table> 
</form> 
</div> 
'); 
 break; 
} 
 
function sendemail($from,$to,$subject,$message,$type){ 
 $bound = time().'SPB'; 
 global $attach, $base_name, $isfile; 
 
 $sep = chr(13).chr(10); // Разделитель строк заголовка 
 switch($type){ 
   case 'text': 
     $headers = "From: ".$from.$sep; 
     $headers.= "X-Priority: 3".$sep; 
     $headers.= "X-MSMail-Priority: Normal".$sep; 
     $headers.= "X-Mailer: PHP/".phpversion().$sep; 
     $headers.= "MIME-Version: 1.0".$sep; 
     $headers.= "Content-Type: multipart/mixed; boundary=\"".$bound."\"".$sep.$sep; 
 
     $body = "--$bound".$sep; 
     $body.= "Content-type: text/plain; charset=\"windows-1251\"".$sep; 
     $body.= "Content-Transfer-Encoding: 8bit".$sep.$sep; 
     $body.= $message.$sep; 
      
     if($isfile == 1){ 
       $body.= "$sep$sep--$bound".$sep; 
       $body.= "Content-Type: application/octet-stream;"; 
       $body.= "name=\"".basename($base_name)."\"".$sep; 
       $body.= "Content-Transfer-Encoding:base64".$sep; 
       $body.= "Content-Disposition:attachment".$sep.$sep; 
       $body.= $attach.$sep; 
     } 
     // $body.="$bound--".$sep.$sep; 
   break; 
   case 'html': 
     $headers = "From: ".$from.$sep; 
     $headers.= "X-Priority: 3".$sep; 
     $headers.= "X-MSMail-Priority: Normal".$sep; 
     $headers.= "X-Mailer: PHP/".phpversion().$sep; 
     $headers.= "MIME-Version: 1.0".$sep; 
     $headers.= "Content-Type: multipart/mixed; boundary=\"".$bound."\"".$sep.$sep; 
 
     $body = "--$bound".$sep; 
     $body.= "Content-type: text/html; charset=\"windows-1251\"".$sep; 
     $body.= "Content-Transfer-Encoding: 8bit".$sep.$sep; 
     $body.= $message.$sep; 
 
     if($isfile == 1){ 
       $message_part = "--$boundary\n";
    $message_part .= "Content-Type: application/octet-stream\n";
    $message_part .= "Content-Transfer-Encoding: base64\n";
    $message_part .= "Content-Disposition: attachment; filename = \"".$path."\"\n\n";
    $message_part .= chunk_split(base64_encode($file))."\n";
    $multipart .= $message_part."--$boundary--\n"; 
     } 
     // $body.="$bound--".$sep.$sep; 
   break; 
   default: 
     echo('<center><b>Неверный параметр типа письма.</b></center>'); 
   break; 
 } 
 if(mail($to,$subject,$body,$headers)){return true;} 
 else{return false;} 
}
?>
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.09.2011, 23:51
Ответы с готовыми решениями:

PHP Скрипты для отправки почты с вложением
ПРИВЕТ! мне очень нужен скрипт для отправки почты на несколько адресов с вложением Добавлено...

Php-скрипт для отправки данных на сервер
Добрый день, в php профан, не получается сделать никак по заданию. часть сделал, другую никак....

Php скрипт почты и хостинг
Есть простой скрипт почты, на одном хосте он работает на другом нет, сам хост платный и на нем...

скрипт для отправки майла
помогите сделать скрипт чтобы сообщение приходило например на site@mail.ru &lt;form...

Скрипт для отправки формы с сайта
Всем привет,помогите пожалуйста написать PHP скрипт для отправки формы с сайта на почту.Пытаюсь уже...

22
netsolex
53 / 53 / 4
Регистрация: 26.05.2011
Сообщений: 379
08.09.2011, 03:52 2
Если есть желание то можешь поменять на новый полностью рабочий скрипт который только останется внедрить в саму страницу и немного изменить дизайн формы по желанию и количество данных для запроса...

Проверено и имею это в пользовании.. Работает как часики !

Держи :

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
<!-- Start Send Form -->
<?php
error_reporting(7);
// This will show in the <title></title> and the form name
$websitename=" Your Web Site Name"; 
 
// Allowed file types. Please remember to keep the format of this array, add the file extensions you want WITHOUT the dot. Please also be aware that certain file types may cause harm to your website and/or server.
$allowtypes=array("zip", "rar", "txt", "doc", "jpg", "png", "gif","odt","xml");
 
// What's your email address? Seperate email addresses with commas for multiple email addresses.
$myemail="email@yourwebsite.com";
 
// What priority should the script send the mail? 1 (Highest), 2 (High), 3 (Normal), 4 (Low), 5 (Lowest).
$priority="3"; 
 
// Should we allow visitors to attach files? How Many? 0 = Do not allow attachments, 1 = allow only 1 file to be attached, 2 = allow two files etc.
$allowattach="1"; 
 
// Maximum file size for attachments in KB NOT Bytes for simplicity. MAKE SURE your php.ini can handel it, post_max_size, upload_max_filesize, file_uploads, max_execution_time!
// 2048kb = 2MB,       1024kb = 1MB,     512kb = 1/2MB etc..
$max_file_size="1024";
 
// Maximum file size for all attachments combined in KB NOT Bytes! MAKE SURE your php.ini can handel it, post_max_size, upload_max_filesize, file_uploads, max_execution_time!
// 2048kb = 2MB,       1024kb = 1MB,     512kb = 1/2MB etc..
$max_file_total="2048";
 
// Value for the Submit Button
$submitvalue=" Send Form "; 
 
// Value for the Reset Button
$resetvalue=" Cancel Form ";
 
// Default subject? This will be sent if the user does not type in a subject
$defaultsubject="Web Site Contact Form"; 
 
// Because many requested it, this feature will add a drop down box for the user to select a array of subjects that you specify below. 
// True = Use this feature, False = do not use this feature
$use_subject_drop=false;
 
// This is an array of the email subjects the user can pick from. Make sure you keep the format of this array or you will get errors!
// Look at http://phphq.net/forums/viewtopic.php?p=836 for examples on how to use this feature.
$subjects=array("Department 1","Department 2","Department 3");
 
// This is an array of the email address for the array above. There must be an email FOR EACH array value specified above. You can have only 1 department if you want.
//YOU MUST HAVE THE SAME AMMOUNT OF $subjects and $emails or this WILL NOT work correctly! The emails also must be in order for what you specify above!
// You can also seperate the emails by a comma to sent 1 department to multiple email addresses.
//  $emails=array("dept_1@domain.com","dept_2@domain.com","dept_3@domain.com");
$emails=array("email@yourwebsite.com");
 
// This is the message that is sent after the email has been sent. You can use html here.
// If you want to redirect users to another page on your website use this: <script type=\"text/javascript\">window.location=\"http://www.YOUR_URL.com/page.html\";
 
$thanksmessage="Thanks! Your form was submitted successfully. Within 48 hours you will receive the answer.";
 
 
 
 
/*
//================================================================================
* ! ATTENTION !
//================================================================================
: Don't edit below this line unless you know some php. Editing some variables or other stuff could cause undeseriable results!!
*/
 
// Will get the extension of the users file. For some reason trying to get the actual type of the file caused problems with certain browsers.
 
function get_ext($key) { 
    $key=strtolower(substr(strrchr($key, "."), 1));
    // Cause there the same right?
    $key=str_replace("jpeg","jpg",$key);
    return $key;
}
 
function phattach($file,$name) {
    global $boundary;
 
    
    $fp=@fopen($file,"r");
    $str=@fread($fp, filesize($file));
    $str=@chunk_split(base64_encode($str));
    $message="--".$boundary."\n";
    $message.="Content-Type: application/octet-stream; name=\"".$name."\"\n";
    //$message.="Content-disposition: attachment\n"; Thanks goes to someone named Chris (I think, it was awhile ago) for his fix below!
    $message.="Content-disposition: attachment; filename=\"".$name."\"\n"; 
    $message.="Content-Transfer-Encoding: base64\n";
    $message.="\n";
    $message.="$str\n";
    $message.="\n";
 
    return $message;
}
 
//Little bit of security from people forging headers. People are mean sometimes :(
function clean($key) {
    $key=str_replace("\r", "", $key);
    $key=str_replace("\n", "", $key);
    $find=array(
        "/bcc\:/i",
        "/Content\-Type\:/i",
        "/Mime\-Type\:/i",
        "/cc\:/i",
        "/to\:/i"
    );
  $key=preg_replace($find,"",$key);
  return $key;
}
 
// Safe for register_globals=on =)
 
$error="";
$types="";
$sent_mail=false;
 
// Do some loopy stuff for the valid file types so people can see what types are valid before they try and upload invalid ones.
 
$ext_count=count($allowtypes);
$i=0;
 
foreach($allowtypes AS $extension) {
    
    //Gets rid of the last comma
    
    If($i <= $ext_count-2) {
        $types .="*.".$extension.", ";
    } Else {
        $types .="*.".$extension;
    }
    $i++;
}
unset($i,$ext_count); // why not
 
 
// If they post the form start the mailin'!
 
If($_POST['submit']==true) {
    extract($_POST, EXTR_SKIP);
 
        // Check the form for errors
    
        If(trim($yourname)=="") { 
            $error.="Write your name please!<br />";
        }
        
        If(trim($youremail)=="") { 
            $error.="Have not written any email!<br />";
        } Elseif(!eregi("^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,4}\$",$youremail)) {
            $error.="Invalid Email.<br />";
        }
 
        If(trim($emailsubject)=="") {
            $emailsubject=$defaultsubject;
        }
 
        If(trim($yourmessage)=="") { 
            $error.="Write your message, please!<br />";
        }
        
        // Verify Attchment info
        
        If($allowattach > 0) {
            
            //Loopish
            
            For($i=0; $i <= $allowattach-1; $i++) {
                
                If($_FILES['attachment']['name'][$i]) {
                    
                    $ext=get_ext($_FILES['attachment']['name'][$i]);
                    $size=$_FILES['attachment']['size'][$i];
                    $max_bytes=$max_file_size*1024;
                    
                    //Check if the file type uploaded is a valid file type. 
                    
                    If(!in_array($ext, $allowtypes)) {
                        
                        $error.= "Invalid extension for your file: ".$_FILES['attachment']['name'][$i].", only ".$types." are allowed.<br />";
                        
                        //Check the size of each file
                        
                    } Elseif($size > $max_bytes) {
                        $error.= "Your file: ".$_FILES['attachment']['name'][$i]." is to big. Max file size is ".$max_file_size."kb.<br />";
                    }
                    
                } // If Files
                
            } // For
 
            //Tally the size of all the files uploaded, check if it's over the ammount.
            
            $total_size=array_sum($_FILES['attachment']['size']);
            
            $max_file_total_bytes=$max_file_total*1024;
            
            If($total_size > $max_file_total_bytes) {
                $error.="The max size allowed for all your files is ".$max_file_total."kb<br />";
            }
            
        } // If Allowattach
 
    If($error) {
    
        $display_message=$error;
 
    } Else {
        
        If($use_subject_drop AND is_array($subjects) AND is_array($emails)) {
            $subject_count=count($subjects);
            $email_count=count($emails);
            
            If($subject_count==$email_count) {
                
                $myemail=$emails[$emailsubject];
                $emailsubject=$subjects[$emailsubject];
                
            }
            
        }
        
        
        $boundary=md5(uniqid(time()));
        
        //Little bit of security from people forging headers. People are mean sometimes :(
        
 
        $yourname=clean($yourname);
        $yourmessage=clean($yourmessage);
        $youremail=clean($youremail);
        
        //Headers
        
        $headers="From: ".$yourname." <".$youremail.">\n";
        $headers.="Reply-To: ".$yourname." <".$youremail.">\n";
        $headers.="MIME-Version: 1.0\n";
        $headers.="Content-Type: multipart/mixed; boundary=\"".$boundary."\"\n";
        $headers.="X-Sender: ".$_SERVER['REMOTE_ADDR']."\n";
        $headers.="X-Mailer: PHP/".phpversion()."\n";
        $headers.="X-Priority: ".$priority."\n"; 
        $headers.="Return-Path: <".$youremail.">\n";
        $headers.="This is a multi-part message in MIME format.\n";
 
        //Message
            
        $message = "--".$boundary."\n";
        $message.="Content-Type: text/plain; charset=\"iso-8859-1\"\n";
        $message.="Content-Transfer-Encoding: quoted-printable\n";
        $message.="\n";
        $message.="$yourmessage";
        $message.="\n";
 
        //Lets attach to something! =)
        
        If($allowattach > 0) {
            
            For($i=0; $i <= $allowattach-1; $i++) {
                
                If($_FILES['attachment']['name'][$i]) {
                    
                    $message.=phattach($_FILES['attachment']['tmp_name'][$i],$_FILES['attachment']['name'][$i]);
                    
                }
                
            } //For
            
        } // If
        
        
        // End the message
        
        $message.="--".$boundary."--\n";
        
        // Send the completed message
        
        If(!mail($myemail,$emailsubject,$message,$headers)) {
            
            Exit("An error has occured, please report this to the website administrator.\n");
            
        } Else {
        
            $sent_mail=true;
            
        }
 
    } // Else
 
} // $_POST
 
 ?>
<? If($display_message) {?>
    <div align="center" class="error_message"><b><?=$display_message;?></b></div>
<br />
 
<? } ?>
 
<? If($sent_mail!=true) { ?>
 
<FORM  method="post" action="<?=$_SERVER['PHP_SELF'];?>" enctype="multipart/form-data" name="phmailer" onSubmit="return Checkit(this);">
<table style="border-top:1px solid #e6e4dc; border-right: 1px solid #e6e4dc; border-bottom:1px solid #e6e4dc; border-left:1px solid #e6e4dc;" align="center" width="99%" cellspacing="1" cellpadding="3">
    <? If($allowattach > 0) { ?>
    <?}?>
    
    <tr>
        <td width="40%" bgcolor="#f6f4ec" align="right">Name: <span style="color:#ed1c24"><strong>*</strong></span></td>
        <td width="60%" bgcolor="#f6f4ec"><input name="yourname" type="text" size="30" value="<?=stripslashes(htmlspecialchars($yourname));?>" /></td>
    </tr>
    <tr>
        <td width="40%" bgcolor="#f6f4ec" align="right">E-Mail: <span style="color:#ed1c24"><strong>*</strong></span></td>
        <td width="60%" bgcolor="#f6f4ec"><input name="youremail" type="text" size="30" value="<?=stripslashes(htmlspecialchars($youremail));?>" /></td>
    </tr>
    <tr>
        <td width="40%" bgcolor="#f6f4ec" align="right">Subject:</td>
        <td width="60%" bgcolor="#f6f4ec">
        
            <? If($use_subject_drop AND is_array($subjects)) { ?>
                    <select name="emailsubject" size="1">
                        <? while(list($key,$val)=each($subjects)) { ?>
 
                            <option value="<?=intval($key);?>"><?=htmlspecialchars(stripslashes($val));?></option>
                        
                        <? }?>
                    </select>
            <? } Else {?>
                
                <input name="emailsubject" type="text" size="30" value="Web Formulario" />
                
            <? }?>
            
        </td>
    </tr>
 
<? For($i=1;$i <= $allowattach; $i++) {?>
    <tr>
        <td width="40%" bgcolor="#f6f4ec" align="right">Attachment:</td>
        <td width="60%" bgcolor="#f6f4ec"><input name="attachment[]" type="file" size="30" /></td>
    </tr>
            <tr>
            <td colspan="2" bgcolor="#f6f4ec" align="right"><span style="font-size:10px">
                <b>Permitted Attachments:</b> <?=$types?><br />
                <b>Max. size per file:</b> <?=$max_file_size?>kb.<br />
            </span></td>
        </tr>
<? } ?>
 
    <tr>
        <td bgcolor="#f6f4ec" align="right" valign="top">Message:<span style="color:#ed1c24"><strong>*</strong></span></td>
        <td bgcolor="#f6f4ec" align="left">
                <textarea name="yourmessage" rows="5" cols="35"><?=stripslashes(htmlspecialchars($yourmessage));?></textarea>
        </td>
    </tr>
    <tr>
        <td colspan="2" width="100%" align="center" bgcolor="#5e5e5e">
            <input type="hidden" name="submit" value="true" />
            <input type="submit" value="<?=$submitvalue;?>" /> &nbsp;
            <input type="reset" value="<?=$resetvalue;?>" />
        </td>
    </tr>
    <tr>
        <td colspan="2" width="100%" align="left" bgcolor="#f4f4f4">Fields are marked with <span style="color:#ed1c24"><strong>*</strong></span> are required! </td>
    </tr>
</table>
</form>
 
<? } Else { ?>
<div align="center" class="msgsendmail"><?=$thanksmessage;?></div>
<br />
<br />
<? } ?>
<!--End Send Form -->
1
Vitalik010979
0 / 0 / 0
Регистрация: 07.09.2011
Сообщений: 5
08.09.2011, 04:35  [ТС] 3
я не пойму куда вставлять получателей и как
0
netsolex
53 / 53 / 4
Регистрация: 26.05.2011
Сообщений: 379
08.09.2011, 07:22 4
Цитата Сообщение от Vitalik010979 Посмотреть сообщение
я не пойму куда вставлять получателей и как

ну во первых я вначале ошибся потому что думал что тебе нужно что бы с веб страницы тебе отправляли почту на твой адрес и поэтому здесь настроено на прием почты ...

но это легко все переделать буквально одной строкой

номер строки - 11
PHP
1
$myemail="email@yourwebsite.com";
поменять ее на

PHP
1
$myemail = $_POST['youremail'];
и получится что в поле где вписывается e-mail отправителя рагьше тебе получится адрес получателя..


Снова у себя проверил и прекрасно отправляет файл прикрепленный по тому адресу который указано в поле...
1
08.09.2011, 07:22
Vitalik010979
0 / 0 / 0
Регистрация: 07.09.2011
Сообщений: 5
08.09.2011, 09:57  [ТС] 5
Мне не надо поле тот скрипт это вот http://soobchestvo.h1.ru/parazeetive.php просто он больше не отсылает аттачименты(файлы) приходит файл 0кб
0
netsolex
53 / 53 / 4
Регистрация: 26.05.2011
Сообщений: 379
08.09.2011, 12:57 6
............просто он больше не отсылает аттачименты.........
а собственно почему у тебя в поле КОМУ также имеется выбор файла ???
я так понимаю что это должно быть поле для почтового адреса получателя а не для файла !

кому же ты тогда отправлял письмо если там идет выбор файла ....

и еще.... тот скрипт который тебе выложил прекрасно отправляет файлы и само письмо...
в чем именно оно тебя не устраивает ? только в том что там нет опции в формате text -- html ?
или это такая принципиальность ?
1
Vitalik010979
0 / 0 / 0
Регистрация: 07.09.2011
Сообщений: 5
08.09.2011, 17:55  [ТС] 7
Я пределал как Ты сказал 11 строчку письмо доходит НО!!! У меня такая же прблема файл вложение приходит пустым 0кб как и в моем скрипте что я сюда выложил
Посоветуйте мне пожалуйста хостинг для отправки почты Мне кажется что мой хостинг просто бесплатный или не поддерживает спам рассылки http://www.h18.ru.....
0
netsolex
53 / 53 / 4
Регистрация: 26.05.2011
Сообщений: 379
08.09.2011, 18:15 8
ну незнаю тогда почему у тебя доходит пустым...
я оправил два письма с разными файлами и все дошли на Google почту мгновенно и с картинками...

значит твой хостинг имеет ограничения...

всегда в таких вопросах желательно изначально выкладывать всю полную информацию о Сервере и какая Опер. Система стоит что бы иметь какое то представление....

всетаки здесь Гарри Поттера нет с палочкой и пойди знай что там за хотсинги и что за разрешения...

однозначто скажу что файл проверенный и пашет как часики...

попроси у кого нибудь временно проверить все и убедится...
тем более всегда компании дают срок помоему на 30 дней проверки хостинга в случае если не понравится...
если что то тогда можно уйти или остаться ....
1
Vitalik010979
0 / 0 / 0
Регистрация: 07.09.2011
Сообщений: 5
08.09.2011, 18:27  [ТС] 9
Все равно ВАМ большое спасибо
Если ненадоел Вы бы не смогли бы посмотреть вот это http://nostalgiy.hut2.ru/index.php У меня скрипты имеются Мне нужно переделать а именно(убрать код,секунды и сделать на несколько получателей)
0
an-muravjev
0 / 0 / 0
Регистрация: 11.11.2011
Сообщений: 8
12.11.2011, 10:24 10
Ребят, помогите разобраться. Вставил скрипт, всё успешно отправляется, но файлы приходят не в виде вложения, а в виде набора символов в теле письма. Как с этим справится?.
0
Vovan-VE
13171 / 6557 / 1039
Регистрация: 10.01.2008
Сообщений: 15,069
12.11.2011, 10:37 11
an-muravjev, Используете код из этой темы или другой код?
0
an-muravjev
0 / 0 / 0
Регистрация: 11.11.2011
Сообщений: 8
12.11.2011, 10:39 12
Код именно этот. Только сообщения переведены, а всё остальное без изменений.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
<!-- Start Send Form -->
<?php
error_reporting(7);
// This will show in the <title></title> and the form name
$websitename="dekohrom.ru";
 
// Allowed file types. Please remember to keep the format of this array, add the file extensions you want WITHOUT the dot. Please also be aware that certain file types may cause harm to your website and/or server.
$allowtypes=array("zip", "rar", "doc", "jpg", "png");
 
// What's your email address? Seperate email addresses with commas for multiple email addresses.
$myemail="an-muravjev@mail.ru";
// What priority should the script send the mail? 1 (Highest), 2 (High), 3 (Normal), 4 (Low), 5 (Lowest).
$priority="3";
 
// Should we allow visitors to attach files? How Many? 0 = Do not allow attachments, 1 = allow only 1 file to be attached, 2 = allow two files etc.
$allowattach="1";
 
// Maximum file size for attachments in KB NOT Bytes for simplicity. MAKE SURE your php.ini can handel it, post_max_size, upload_max_filesize, file_uploads, max_execution_time!
// 2048kb = 2MB,       1024kb = 1MB,     512kb = 1/2MB etc..
$max_file_size="2048";
 
// Maximum file size for all attachments combined in KB NOT Bytes! MAKE SURE your php.ini can handel it, post_max_size, upload_max_filesize, file_uploads, max_execution_time!
// 2048kb = 2MB,       1024kb = 1MB,     512kb = 1/2MB etc..
$max_file_total="2048";
 
// Value for the Submit Button
$submitvalue=" Отправить ";
 
// Value for the Reset Button
$resetvalue=" Сбросить ";
 
// Default subject? This will be sent if the user does not type in a subject
$defaultsubject="Оценка стоимости";
 
// Because many requested it, this feature will add a drop down box for the user to select a array of subjects that you specify below.
// True = Use this feature, False = do not use this feature
$use_subject_drop=false;
 
// This is an array of the email subjects the user can pick from. Make sure you keep the format of this array or you will get errors!
// Look at http://phphq.net/forums/viewtopic.php?p=836 for examples on how to use this feature.
$subjects=array("Department 1","Department 2","Department 3");
 
// This is an array of the email address for the array above. There must be an email FOR EACH array value specified above. You can have only 1 department if you want.
//YOU MUST HAVE THE SAME AMMOUNT OF $subjects and $emails or this WILL NOT work correctly! The emails also must be in order for what you specify above!
// You can also seperate the emails by a comma to sent 1 department to multiple email addresses.
//  $emails=array("dept_1@domain.com","dept_2@domain.com","dept_3@domain.com");
$emails=array("an-muravjev@mail.ru","termit-aliasnet@yandex.ru");
 
// This is the message that is sent after the email has been sent. You can use html here.
// If you want to redirect users to another page on your website use this: <script type=\"text/javascript\">window.location=\"http://www.YOUR_URL.com/page.html\";
 
$thanksmessage="Спасибо, мы свяжемся с вами в течение 48 часов";
 
 
 
 
/*
//================================================================================
* ! ATTENTION !
//================================================================================
: Don't edit below this line unless you know some php. Editing some variables or other stuff could cause undeseriable results!!
*/
 
// Will get the extension of the users file. For some reason trying to get the actual type of the file caused problems with certain browsers.
 
function get_ext($key) {
        $key=strtolower(substr(strrchr($key, "."), 1));
        // Cause there the same right?
        $key=str_replace("jpeg","jpg",$key);
        return $key;
}
 
function phattach($file,$name) {
        global $boundary;
 
 
        $fp=@fopen($file,"r");
        $str=@fread($fp, filesize($file));
        $str=@chunk_split(base64_encode($str));
        $message="--".$boundary."\n";
        $message.="Content-Type: application/octet-stream; name=\"".$name."\"\n";
        //$message.="Content-disposition: attachment\n"; Thanks goes to someone named Chris (I think, it was awhile ago) for his fix below!
        $message.="Content-disposition: attachment; filename=\"".$name."\"\n";
        $message.="Content-Transfer-Encoding: base64\n";
        $message.="\n";
        $message.="$str\n";
        $message.="\n";
 
        return $message;
}
 
//Little bit of security from people forging headers. People are mean sometimes :(
function clean($key) {
        $key=str_replace("\r", "", $key);
        $key=str_replace("\n", "", $key);
        $find=array(
                "/bcc\:/i",
                "/Content\-Type\:/i",
                "/Mime\-Type\:/i",
                "/cc\:/i",
                "/to\:/i"
        );
  $key=preg_replace($find,"",$key);
  return $key;
}
 
// Safe for register_globals=on =)
 
$error="";
$types="";
$sent_mail=false;
 
// Do some loopy stuff for the valid file types so people can see what types are valid before they try and upload invalid ones.
 
$ext_count=count($allowtypes);
$i=0;
 
foreach($allowtypes AS $extension) {
 
        //Gets rid of the last comma
 
        If($i <= $ext_count-2) {
                $types .="*.".$extension.", ";
        } Else {
                $types .="*.".$extension;
        }
        $i++;
}
unset($i,$ext_count); // why not
 
 
// If they post the form start the mailin'!
 
If($_POST['submit']==true) {
        extract($_POST, EXTR_SKIP);
 
                // Check the form for errors
 
                If(trim($yourname)=="") {
                        $error.="Введите имя!.<br />";
                }
 
                If(trim($youremail)=="") {
                        $error.="Не введён ни один обратный e-mail!<br />";
                } Elseif(!eregi("^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,4}\$",$youremail)) {
                        $error.="Не корректный e-mail.<br />";
                }
 
                If(trim($emailsubject)=="") {
                        $emailsubject=$defaultsubject;
                }
 
                If(trim($yourmessage)=="") {
                        $error.="Пожалуйста, напишите комментарий!<br />";
                }
 
                // Verify Attchment info
 
                If($allowattach > 0) {
 
                        //Loopish
 
                        For($i=0; $i <= $allowattach-1; $i++) {
 
                                If($_FILES['attachment']['name'][$i]) {
 
                                        $ext=get_ext($_FILES['attachment']['name'][$i]);
                                        $size=$_FILES['attachment']['size'][$i];
                                        $max_bytes=$max_file_size*1024;
 
                                        //Check if the file type uploaded is a valid file type.
 
                                        If(!in_array($ext, $allowtypes)) {
 
                                                $error.= "Invalid extension for your file: ".$_FILES['attachment']['name'][$i].", only ".$types." are allowed.<br />";
 
                                                //Check the size of each file
 
                                        } Elseif($size > $max_bytes) {
                                                $error.= "Your file: ".$_FILES['attachment']['name'][$i]." is to big. Max file size is ".$max_file_size."kb.<br />";
                                        }
 
                                } // If Files
 
                        } // For
 
                        //Tally the size of all the files uploaded, check if it's over the ammount.
 
                        $total_size=array_sum($_FILES['attachment']['size']);
 
                        $max_file_total_bytes=$max_file_total*1024;
 
                        If($total_size > $max_file_total_bytes) {
                                $error.="Максимальный размер файла ".$max_file_total."kb<br />";
                        }
 
                } // If Allowattach
 
        If($error) {
 
                $display_message=$error;
 
        } Else {
 
                If($use_subject_drop AND is_array($subjects) AND is_array($emails)) {
                        $subject_count=count($subjects);
                        $email_count=count($emails);
 
                        If($subject_count==$email_count) {
 
                                $myemail=$emails[$emailsubject];
                                $emailsubject=$subjects[$emailsubject];
 
                        }
 
                }
 
 
                $boundary=md5(uniqid(time()));
 
                //Little bit of security from people forging headers. People are mean sometimes :(
 
 
                $yourname=clean($yourname);
                $yourmessage=clean($yourmessage);
                $youremail=clean($youremail);
 
                //Headers
 
                $headers="From: ".$yourname." <".$youremail.">\n";
                $headers.="Reply-To: ".$yourname." <".$youremail.">\n";
                $headers.="MIME-Version: 1.0\n";
                $headers.="Content-Type: multipart/mixed; boundary=\"".$boundary."\"\n";
                $headers.="X-Sender: ".$_SERVER['REMOTE_ADDR']."\n";
                $headers.="X-Mailer: PHP/".phpversion()."\n";
                $headers.="X-Priority: ".$priority."\n";
                $headers.="Return-Path: <".$youremail.">\n";
                $headers.="This is a multi-part message in MIME format.\n";
 
                //Message
 
                $message = "--".$boundary."\n";
                $message.="Content-Type: text/plain; charset=\"iso-8859-1\"\n";
                $message.="Content-Transfer-Encoding: quoted-printable\n";
                $message.="\n";
                $message.="$yourmessage";
                $message.="\n";
 
                //Lets attach to something! =)
 
                If($allowattach > 0) {
 
                        For($i=0; $i <= $allowattach-1; $i++) {
 
                                If($_FILES['attachment']['name'][$i]) {
 
                                        $message.=phattach($_FILES['attachment']['tmp_name'][$i],$_FILES['attachment']['name'][$i]);
 
                                }
 
                        } //For
 
                } // If
 
 
                // End the message
 
                $message.="--".$boundary."--\n";
 
                // Send the completed message
 
                If(!mail($myemail,$emailsubject,$message,$headers)) {
 
                        Exit("Ошибка, пожалуйста, свяжитесь с администратором сайта.\n");
 
                } Else {
 
                        $sent_mail=true;
 
                }
 
        } // Else
 
} // $_POST
 
 ?>
<? If($display_message) {?>
    <div align="center" class="error_message"><b><?=$display_message;?></b></div>
<br />
 
<? } ?>
 
<? If($sent_mail!=true) { ?>
 
<FORM  method="post" action="<?=$_SERVER['PHP_SELF'];?>" enctype="multipart/form-data" name="phmailer" onSubmit="return Checkit(this);">
<table style="border-top:1px solid #e6e4dc; border-right: 1px solid #e6e4dc; border-bottom:1px solid #e6e4dc; border-left:1px solid #e6e4dc;" align="center" width="99%" cellspacing="1" cellpadding="3">
        <? If($allowattach > 0) { ?>
        <?}?>
 
        <tr>
                <td width="40%" bgcolor="#f6f4ec" align="right">Ваше имя: <span style="color:#ed1c24"><strong>*</strong></span></td>
                <td width="60%" bgcolor="#f6f4ec"><input name="yourname" type="text" size="30" value="<?=stripslashes(htmlspecialchars($yourname));?>" /></td>
        </tr>
        <tr>
                <td width="40%" bgcolor="#f6f4ec" align="right">Ваш E-Mail: <span style="color:#ed1c24"><strong>*</strong></span></td>
                <td width="60%" bgcolor="#f6f4ec"><input name="youremail" type="text" size="30" value="<?=stripslashes(htmlspecialchars($youremail));?>" /></td>
        </tr>
        <tr>
                <td width="40%" bgcolor="#f6f4ec" align="right">Тема:</td>
                <td width="60%" bgcolor="#f6f4ec">
 
                        <? If($use_subject_drop AND is_array($subjects)) { ?>
                                        <select name="emailsubject" size="1">
                                                <? while(list($key,$val)=each($subjects)) { ?>
 
                                                        <option value="<?=intval($key);?>"><?=htmlspecialchars(stripslashes($val));?></option>
 
                                                <? }?>
                                        </select>
                        <? } Else {?>
 
                                <input name="emailsubject" type="text" size="30" value="Оценка стоимости работ" />
 
                        <? }?>
 
                </td>
        </tr>
 
<? For($i=1;$i <= $allowattach; $i++) {?>
        <tr>
                <td width="40%" bgcolor="#f6f4ec" align="right">Файл:</td>
                <td width="60%" bgcolor="#f6f4ec"><input name="attachment[]" type="file" size="30" /></td>
        </tr>
                <tr>
                        <td colspan="2" bgcolor="#f6f4ec" align="right"><span style="font-size:10px">
                                <b>Желательные форматы:</b> <?=$types?><br />
                                <b>Максимальный размер файла:</b> <?=$max_file_size?>kb.<br />
                        </span></td>
                </tr>
<? } ?>
 
        <tr>
                <td bgcolor="#f6f4ec" align="right" valign="top">Комментарии:<span style="color:#ed1c24"><strong>*</strong></span></td>
        <td bgcolor="#f6f4ec" align="left">
                                <textarea name="yourmessage" rows="5" cols="35"><?=stripslashes(htmlspecialchars($yourmessage));?></textarea>
                </td>
        </tr>
        <tr>
                <td colspan="2" width="100%" align="center" bgcolor="#f6f4ec">
                        <input type="hidden" name="submit" value="true" />
                        <input type="submit" value="<?=$submitvalue;?>" /> &nbsp;
                        <input type="reset" value="<?=$resetvalue;?>" />
                </td>
        </tr>
    <tr>
                <td colspan="2" width="100%" align="left" bgcolor="#f4f4f4">Поля, отмеченные <span style="color:#ed1c24"><strong>*</strong></span> обязательны для заполнения! </td>
        </tr>
</table>
</form>
 
<? } Else { ?>
<div align="center" class="msgsendmail"><?=$thanksmessage;?></div>
<br />
<br />
<? } ?>
<!--End Send Form -->

А вот что приходит на почту:
Код
Content-Type: application/octet-stream; name="заказ13.doc"
Content-disposition: attachment; filename="заказ13.doc"
Content-Transfer-Encoding: base64

0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAACAAAA7gAAAAAAAAAA
EAAA8QAAAAEAAAD+////AAAAAOwAAADtAAAA////////////////////////////////////////
и т.д.
0
Vovan-VE
13171 / 6557 / 1039
Регистрация: 10.01.2008
Сообщений: 15,069
12.11.2011, 10:46 13
Непосредственно перед отправкой:
Цитата Сообщение от an-muravjev Посмотреть сообщение
PHP
1
If(!mail($myemail,$emailsubject,$message,$headers)) {
сделайте временно вывод содержимого переменных $message и $headers и дайте посмотреть, что там в них этакого получается.

Добавлено через 3 минуты
Цитата Сообщение от an-muravjev Посмотреть сообщение
PHP
1
2
3
$headers.="This is a multi-part message in MIME format.\n";
//Message
$message = "--".$boundary."\n";
Между блоком хидеров и multipart-телом должна быть пустая строка:
Код
...
Content-Type: multipart/mixed; boundary="foobarlol"

--foobarlol
Хидер: ...
Хидер: ...

Тело
--foobarlol
Хидер: ...
Хидер: ...

Тело
--foobarlol--
0
an-muravjev
0 / 0 / 0
Регистрация: 11.11.2011
Сообщений: 8
12.11.2011, 11:50 14
Перед отправкой $message:
--322fb49bb20499168ffb8f026cc74683 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable 213 -- Content-Type: application/octet-stream; name="jumi_pack_2.0.5_for_J1.5.zip" Content-disposition: attachment; filename="jumi_pack_2.0.5_for_J1.5.zip" Content-Transfer-Encoding: base64 UEsDBAoAAAAAAMm9UDsAAAAAAAAAAAAAAAAfAAAAanVtaV9wYWNrXzIuMC41X2Zvcl9KMS41L2Fk bWluL1BLAwQUAAIACADCeVc6fKc8iykOAACGPAAALQAAAGp1bWlfcGFja18yLjAuNV9mb3JfSjEu NS9hZG1pbi9hZG1pbi5qdW1pLnBocNUb+1PbRvp3/xV7OopkamSTXm8yBkMoOC0cgRRM27tMhlmk ta0gSz5pDeFu8r/f9+2upF1JfgHJ9JhJ0GP3e7+17B1Mx9NGe2ursUXe3LMkDeKIELJx4ncJ9SdB 5H6aTQIXFpGdH8mrTuf19s7OducHuOv+7VW38/pfhPnx69evyQZCmFLvjo4YQDiFbfjEi6ePSTAa c3KUXzlHTQGK9P17mvjkMKLRI41cchiGRCxJScJSltwz30UgYeCxKEWwP59ft39+f9YiKWPk7OSo f37VR+oaW+1Gw2fDIGK+Y92c9v/oH1lNEifED5hjXbKUJ4HHmU+o57E0tZq7jcanYDKNE+7Yn+J4 ElKXTqeAiXKQgevF8C5iEYeriCdxGLLExk1eSNNUsHeUvyDsM2eRD4+1Z/9tAL1kOIs8BEhubgAQ UDHzuLMBlNJZyEmP0CShj06zqZbjz5QmgLfbrdsBFGTLNvg4SLf3EzYKUs6SAU3vHJv6vk1axGZ+ wA8Lduxl+3C9/YR9Kb1nuA9/r7MPRf34lI0Jm8QSpbxaZ+90dhsG6Rg3q0ttd7p0+yxaHUC7XQvC......... и т.д.
$headers:
From: an-muravjev Reply-To: an-muravjev MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="635a48a9bb3f0956330385dbabbd1310" X-Sender: 109.191.71.209 X-Mailer: PHP/5.2.6-1+lenny13 X-Priority: 3 Return-Path: This is a multi-part message in MIME format.
Про хидеры и мультипарты я что-то не очень понял.
0
Vovan-VE
13171 / 6557 / 1039
Регистрация: 10.01.2008
Сообщений: 15,069
12.11.2011, 13:13 15
an-muravjev, А символы новых строк куда подевали? Вы этот код вообще под nix'ами запускаете или под виндой?
0
an-muravjev
0 / 0 / 0
Регистрация: 11.11.2011
Сообщений: 8
12.11.2011, 13:15 16
Код под виндой запускаю, вывел переменные прям на странице.
0
Vovan-VE
13171 / 6557 / 1039
Регистрация: 10.01.2008
Сообщений: 15,069
12.11.2011, 13:21 17
Цитата Сообщение от an-muravjev Посмотреть сообщение
Про хидеры и мультипарты я что-то не очень понял.
У Вас в коде между блоком хидеров и meltipart-телом нет пустой троки:
PHP
1
2
3
4
5
6
7
$headers.="Return-Path: <".$youremail.">\n";
$headers.="This is a multi-part message in MIME format.\n";
 
//Message
 
$message = "--".$boundary."\n";
$message.="Content-Type: text/plain; charset=\"iso-8859-1\"\n";
В результате этого получится:
Код
...
Return-Path: foo@bar.lol
This is a multi-part message in MIME format
--loremipsumdolor
Content-Type: text/plain; charset="iso-8859-1"
...
а должно быть:
Код
...
Return-Path: foo@bar.lol

--loremipsumdolor
Content-Type: text/plain; charset="iso-8859-1"
...
Зачем там вообще эта глупая строка "This is a multi-part message in MIME format"? Уберите её, но оставьте там же \n .

Добавлено через 2 минуты
Цитата Сообщение от an-muravjev Посмотреть сообщение
Код под виндой запускаю
По стандарту формат новых строк в мылах должен быть \r\n . Просто в nix'ах используется только \n , так что этот код для запуска под виндой не годится.
Цитата Сообщение от an-muravjev Посмотреть сообщение
вывел переменные прям на странице.
Надо было не со страницы копировать html, а из исходного кода страницы plain-text нормальный.
0
an-muravjev
0 / 0 / 0
Регистрация: 11.11.2011
Сообщений: 8
12.11.2011, 13:44 18
Убрал "This is a multi-part message in MIME format", но оставил перенос строки. Результат не изменился.
Действительно, под виндой код не запускается, я проверяю на хостинге из под unix.
header:
From: an-muravjev <an-muravjev@mail.ru>
Reply-To: an-muravjev <an-muravjev@mail.ru>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="99b341d1ae3518871c8c517b346057d5"
X-Sender: 109.191.71.209
X-Mailer: PHP/5.2.6-1+lenny13
X-Priority: 3
Return-Path: <an-muravjev@mail.ru>
message:
--a2d2eafc3d160e84734acfd8d3c2fdcc
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

dsfdsffsf sdfs fasdf sfd
--
Content-Type: application/octet-stream; name="jumi_pack_2.0.6_for_J1.6.zip"
Content-disposition: attachment; filename="jumi_pack_2.0.6_for_J1.6.zip"
Content-Transfer-Encoding: base64

UEsDBAoAAAAAAOytMD4AAAAAAAAAAAAAAAAMAAAAcGFja2FnZV9KMTYvUEsDBAoAAAAAAOytMD4A
AAAAAAAAAAAAAAASAAAAcGFja2FnZV9KMTYvYWRtaW4vUEsDBBQAAAAIADCYMD6z2R/i0g0AAGA8
AAAgAAAAcGFja2FnZV9KMTYvYWRtaW4vYWRtaW4uanVtaS5waHDVG9ly40Tw3V8xCBPJiyM7UFCU
s/YSEgcScpE4HLVsuSbS2FYiS0KSEwK1/073zEgaHbblHBTsw0YaTd/HdLfkt++CWdDovHnTeEO+ ..........
0
Vovan-VE
13171 / 6557 / 1039
Регистрация: 10.01.2008
Сообщений: 15,069
12.11.2011, 13:50 19
Цитата Сообщение от an-muravjev Посмотреть сообщение
--a2d2eafc3d160e84734acfd8d3c2fdcc
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

dsfdsffsf sdfs fasdf sfd
--
Content-Type: application/octet-stream; name="jumi_pack_2.0.6_for_J1.6.zip"
Где-то boundary потеряли. Разделителя нет, вот и получается сплошной кусок.

Добавлено через 1 минуту
Включите в php вывод всех ошибок и смотрите, где на что он будет матюгаться - сразу жизнь облегчится.
1
an-muravjev
0 / 0 / 0
Регистрация: 11.11.2011
Сообщений: 8
12.11.2011, 14:29 20
Спасибо за помощь, не стал заморачиваться и взял другой скрипт.
Теперь файлы принимаются, но текст сообщения не по нашему.
ТЕМА:
ваыав

СООБЩЕН�Е:
Проверка Proverka
Что-то с кодировкой при передаче?
0
12.11.2011, 14:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.11.2011, 14:29

PHP сервер для отправки push на приложение Android
Всем привет. В обще случилась такая ситуация: нужно подготовить проект состоящий из 2...

Посоветуйте украинский сервис для отправки смс PHP скриптом
Посоветуйте украинский сервис для отправки смс PHP скриптом. Интересует именно украинский. Спасибо.

Форма отправки почты без перезагрузки страницы
Помогите сделать так, чтоб моя форма обрабатывалась безе перезагрузки странички. Заранее...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru