Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Сеть > Отправка E-mail


Автор: lorents 18.4.2009, 10:43
Добрый день, хотел спросить может у кого есть форма отправки писем и была возможность прикреплять файлы, и если есть такая возможность чтобы показывался процесс отправки письма

вот есть такой код, как к мену добавить функцию прикрепить файл?

Код

<?php

// specify recipient email address
$to="TYPE-YOUR-EMAIL-ADDRESS-HERE";

// send our email
mail ("$to","$subject","$body","$from");

?> 

и еще не подскажите где можно протестировать готовые php-файлы?

Автор: MoLeX 20.4.2009, 05:45
Цитата(lorents @  18.4.2009,  10:43 Найти цитируемый пост)
и еще не подскажите где можно протестировать готовые php-файлы?

на сервере, на локальном сервере

Автор: Aliance 22.4.2009, 08:50
Вот тут пример: http://php.spb.ru/php/mail.html

P.S. скажите, а зачем в Вашем коду в функции mail() переменные стоят в двойных кавычках? Чтобы время генерации повысилось?  smile 

Автор: lorents 22.4.2009, 09:11
Aliance
Цитата(Aliance @  22.4.2009,  08:50 Найти цитируемый пост)
переменные стоят в двойных кавычках?

а что не надо? учту на будущее smile 
просто этот код подключен к моей программе, а с PHP работаю впервые
а не нашел где там переменная прикрепить файл, не подскажите мне?


Автор: enof 22.4.2009, 09:33
Из гугля:
Код

<?php
function mail_attachment($filename, $path, $mailto, $from_mail, $from_name, $replyto, $subject, $message) {
    $file = $path.$filename;
    $file_size = filesize($file);
    $handle = fopen($file, "r");
    $content = fread($handle, $file_size);
    fclose($handle);
    $content = chunk_split(base64_encode($content));
    $uid = md5(uniqid(time()));
    $name = basename($file);
    $header = "From: ".$from_name." <".$from_mail.">\r\n";
    $header .= "Reply-To: ".$replyto."\r\n";
    $header .= "MIME-Version: 1.0\r\n";
    $header .= "Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n\r\n";
    $header .= "This is a multi-part message in MIME format.\r\n";
    $header .= "--".$uid."\r\n";
    $header .= "Content-type:text/plain; charset=iso-8859-1\r\n";
    $header .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
    $header .= $message."\r\n\r\n";
    $header .= "--".$uid."\r\n";
    $header .= "Content-Type: application/octet-stream; name=\"".$filename."\"\r\n"; // use diff. tyoes here
    $header .= "Content-Transfer-Encoding: base64\r\n";
    $header .= "Content-Disposition: attachment; filename=\"".$filename."\"\r\n\r\n";
    $header .= $content."\r\n\r\n";
    $header .= "--".$uid."--";
    if (mail($mailto, $subject, "", $header)) {
        echo = "mail send ... OK"; // or use booleans here
    } else {
        echo = "mail send ... ERROR!";
    }
}
// how to use
$my_file = "somefile.zip";
$my_path = $_SERVER['DOCUMENT_ROOT']."/your_path_here/";
$my_name = "Olaf Lederer";
$my_mail = "[email protected]";
$my_replyto = "[email protected]";
$my_subject = "This is a mail with attachment.";
$my_message = "Hallo,\r\ndo you like this script? I hope it will help.\r\n\r\ngr. Olaf";
mail_attachment($my_file, $my_path, "[email protected]", $my_mail, $my_name, $my_replyto, $my_subject, $my_message);
?>
Как юзать, думаю понятно и без комментариев.

Автор: lorents 22.4.2009, 18:46
enof, поглядим, спасибо smile 

Автор: AGK2 6.8.2009, 21:32
Всем доброго времени суток.
Может кто сталкивался с проблемой css в html содержимом письма
у меня не обрабатывается оно, что нужно для нормальной работы css  и предусмотрено оно вообще или нет

заранее благодарю за ответ.  smile 

Автор: skyboy 6.8.2009, 21:37
Цитата(AGK2 @  6.8.2009,  20:32 Найти цитируемый пост)
с проблемой css в html содержимом письма

это тег <style> или <link> на внешний css-файл? тестировалось где: отдельный клиент(outlook, the bat!, thunderbird) или web-интерфейс(mail.ru, gmail.com)? html-форматирование учитывается?

Автор: AGK2 6.8.2009, 21:52
Цитата(skyboy @ 6.8.2009,  21:37)
Цитата(AGK2 @  6.8.2009,  20:32 Найти цитируемый пост)
с проблемой css в html содержимом письма

это тег <style> или <link> на внешний css-файл? тестировалось где: отдельный клиент(outlook, the bat!, thunderbird) или web-интерфейс(mail.ru, gmail.com)? html-форматирование учитывается?


результат отправки просматриваю в gmail.com и mail.ru
html обрабатывается, css нет 

у меня примерно такой код

Код

$message = file_get_contents("./tmpl/$tmpl.tpl"); 
//здесь берется html

$headers = "To: $fist_name $last_name <$mail> \r\n";
$headers .= "From: $from_name <$from_email> \r\n";
// To send HTML mail, the Content-type header must be set
$headers .= 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
// Mail it
$ok = mail($mail, $subject, $message, $headers);


в html css пытался вставить двумя способами:
1) 
Код

<style type="text/css">

</style>


2) 
Код

<link href="http://example.com/mail.css" rel="stylesheet" type='text/css'>





Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)