HTML+mail()+PHP

Тема в разделе "PHP программирование", создана пользователем -, 30 сен 2003.

Статус темы:
Закрыта.
  1. Гость

    Кто знает. Как послать сообщение из PHP через mail() в HTML формате?
     
  2. admin

    admin Well-Known Member

    Регистрация:
    8 авг 2003
    Сообщения:
    2.811
    Симпатии:
    0
    Код (Text):
    <?
     $header = "Content-Type: text/html; charset=windows-1251\n";
     $email = "адрес для отправки письма";
     $tema = "тема письма";
     $text = "<h3>Письмо в формате HTML</h3>
     <table border=1><tr><td>Vj;tn</td><td>содержать</td><td>любой</td><td>
     код</td>
     </tr></table>";
     mail($email, $tema, $text, $header);
     ?>
     
  3. STYX

    STYX Гость

    Можно еще всяких проверок данных добавить через if ().
     
  4. Гость

    очень полезный ответ, спасибо.

    А вот можно ли в header-е прописать SMTP, отличный от того, который указан в настройках Апача?

    И еще: как аттачи делать?

    заранее благодарен

    terchy.com@mail.ru
     
  5. admin

    admin Well-Known Member

    Регистрация:
    8 авг 2003
    Сообщения:
    2.811
    Симпатии:
    0
    Алан
    низзя.
    смотри форум. я где-то давал пример с SIMPLE MAPI.
     
  6. HiDDeN

    HiDDeN Гость

    Локально в .htaccess директивами
    php_value SMTP localhost
    php_value smtp_port 25

    Или вот так..
    Код (Text):
    ini_set('SMTP','localhost');
    ini_set('smtp_port','25');
    Взято отсюда.
     
  7. Гость

    это не письмо в HTML, это бред собачий! Надо ж АТТАЧЕМ это делать иначе большинство почтовиков за спам примут!
     
  8. Radion2

    Radion2 Member

    Регистрация:
    13 сен 2006
    Сообщения:
    23
    Симпатии:
    0
    Код (Text):
     <?PHP
    $ToEmail = "Брейль Андрей<pite20@gmx.de>";
    $Subject = "PHP ist toll Хорошо";
    $Message = "Hallo Claudia!
    sender war gerade auf deinen PHP-Seiten und
    wollte dir sagen, dass sie ihm/ihr sehr gut
    gefallen.
    Wenn du mit ihm/ihr Kontakt aufnehmen
    moechtest, benutze bitte die Adresse sendermail.
    Хорошо";
    $Headers = "From: Breil Andreas<breil-andreas@mail.ru>\n";
    $Headers .= "Content-Type: text/html; charset=UTF-8\n";
    $Headers .="Content-Transfer-Encoding: 8bit\n";
    mail($ToEmail, $Subject, $Message, $Headers);
    ?>
    нужна помощь. как сделать чтобы отправитель и получатель тоже кодировались в UTF-8 ???
    в примере выше subject и message пашет нормально (UTF-8), а отправитель и получатель нет.
    файл сохранён в UTF-8.
     
  9. Andrew Stephanoff

    Andrew Stephanoff Гость

    Код (Text):
     $ToEmail = "=?utf-8?B?" . base64_encode("Брейль Андрей") . "?= <pite20@gmx.de>";
     
  10. Radion2

    Radion2 Member

    Регистрация:
    13 сен 2006
    Сообщения:
    23
    Симпатии:
    0
    ещё один раз нужна помощь.
    нашел скрипт PHP mailer with attachments.
    в пришедшем письме величина приклеенного файла не как у оригинала.

    что что тут нужно изменить чтобы в пришедшем письме величина файла была как у оригинала ?

    Код (Text):
    <?PHP
    if($senden){
    $from = "breil-an@mail.ru";
    $to = "pite20@gmx.de";
    $subject = "testmail";
    $message = "Name: ".$name."\nBeruf: ".$beruf."\nText: ".$text;
    $boundary = strtoupper(md5(uniqid(time())));
    $mail_header = "From:Test <$from>\n";
    $mail_header .= "MIME-Version: 1.0";
    $mail_header .= "\nContent-Type: multipart/mixed; boundary=$boundary";
    $mail_header .= "\n\nMultipart Nachricht";
    $mail_header .= "\n--$boundary";
    $mail_header .= "\nContent-Type: text/html";
    $mail_header .= "\nContent-Transfer-Encoding: 8bit";
    $mail_header .= "\n\n$message";
    $file_content = fread(fopen($userfile,"r"),filesize($userfile));
    $file_content = chunk_split(base64_encode($file_content));
    $mail_header .= "\n--$boundary";
    $mail_header .= "\nContent-Type: $userfile_type; name=\"$userfile_name\"";
    $mail_header .= "\nContent-Transfer-Encoding: base64";
    $mail_header .= "\nContent-Disposition: attachment; filename=\"$userfile_name\"";
    $mail_header .= "\n\n$file_content";
    $mail_header .= "\n--$boundary--";
    mail($to,$subject,$message,$mail_header);
    }
    ?>

    <html>
    <body>
    <form method="post" action="mail6.php" enctype="multipart/form-data">
    <table border=0 cellpadding=0 cellspacing=0 width="100%">
    <tr>
    <td>Name:</td>
    <td><input type="text" name="name" size=30" /></td>
    </tr>
    <tr>
    <td>Beruf:</td>
    <td><input type="text" name="beruf" size=30" /></td>
    </tr>
    <tr>
    <td>Text:</td>
    <td><textarea cols=20 rows=5 name="text"></textarea></td>
    </tr>
    <tr>
    <td>Foto:</td>
    <td><input type="file" name="userfile" size=30" /></td>
    </tr>
    <tr>
    <td colspan=2><input type="submit" name="senden" value="senden" /></td>
    </tr>
    </table>
    </form>
    </body>
    </html>
     
  11. Andrew Stephanoff

    Andrew Stephanoff Гость

    хмм.. а что значит -- не такое...
    если проблемы с UTF-8, попробуй и тут
    Код (Text):
    $Headers     .= "Content-Type: $userfile_type; name=\"=?utf-8?B?" . base64_encode($userfile_type) . "?=\"\r\n";
     
  12. Radion2

    Radion2 Member

    Регистрация:
    13 сен 2006
    Сообщения:
    23
    Симпатии:
    0
    в коде сверху с attachments от меня прикрепленный файл прйходит изменённый: 1. имя файла не оригинальное (a в виде: AT00045.txt) и 2. размер файла не как у оригинального а на 2 байта болше так что бинарные файлы потом неработоспособны.

    я был бы очень рад если бы ктонибудь мне помог его дополнить с приклейкой файла(Attachments).

    вот рабочий код который позволяет отправлять в любой кодировке. PHP файл должен быть сохранён в UTF-8.
    Код (Text):
    <?PHP
    $FromName = "Брейль Андрюха";
    $FromEmail = "breil-an@mail.ru";
    $ToName = "Брейль Андрей";
    $ToEmail  = "pite20@gmx.de";
    $Subject  = "PHP ist toll Хорошо ÜÖÄ";
    $Message  = "Hallo Claudia! Хорошо ÜÖÄ";
    $Charset  = "UTF-8";

    //mb_language("Ru"); // optional
    mb_internal_encoding($Charset);
    $From    = mb_encode_mimeheader($FromName) . " <" . $FromEmail . ">";
    $To     = mb_encode_mimeheader($ToName) . " <" . $ToEmail . ">";
    $Headers  = "From: " . $From . "\r\n";
    $Headers .= "Content-Type: text/html;\r\n";
    mb_send_mail($To, $Subject, $Message, $Headers);
    ?>
     
  13. Hetman

    Hetman Гость

    У меня код похожий на предыдущий Посмотреть вложение send_mail.rar
    Я его нисал на денвере и всё работало - письма отсылал.
    бросил на сервак, а он, зараза, не фурычит. Думаю в чём дело, а оказавается мой скрипт заточен под php4, а на серваке php5.

    В этом может быть проблема?
    хотело было другой класс скачать с http://www.phpclasses.org (случайно нашёл в сети) так там нужна регистрация, а что бы её осуществить нужны постинги на сайте. в общем несудьба.
    может у кого есть пример работающий 100% на php5?
     
  14. Radion2

    Radion2 Member

    Регистрация:
    13 сен 2006
    Сообщения:
    23
    Симпатии:
    0
    Для: Hetman
    доработанный sendmail написанный мною на mb_send_mail на основе моего в посте выше кода
    http://rapidshare.com/files/30982124/-_m_2.zip

    Features:
    1. кодировку можно выставить

    вроде у меня на хостинге www.hut.ru всё работало, но нужно бы ещё протестировать
     
  15. Hetman

    Hetman Гость

    Спасибо пробую.
    я вот ещё обратил внимание - у хостера
    sendmail_path = /usr/sbin/sendmailfake -t -i

    а у меня

    sendmail_path = \usr\sbin\sendmail -t -i

    из-за этого могут быть траблы?
     
  16. Hetman

    Hetman Гость

    <!--QuoteBegin-Radion2+13:05:2007, 02:07 -->
    <span class="vbquote">(Radion2 @ 13:05:2007, 02:07 )</span><!--QuoteEBegin-->вроде у меня на хостинге www.hut.ru всё работало, но нужно бы ещё протестировать
    [snapback]65738" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    у меня тоже на денвере работает, а вот на серваке нет :)
     
  17. deadt04ka

    deadt04ka Гость

    Так что именно не работает? какие ошибки выдает?
     
  18. Hetman

    Hetman Гость

    Для: deadt04ka
    в том и дело, что ошибок никаких кнопку send нажал и всё "0"
    функция send возвращает 1, а письмо не отправляется. Может дело в настройках сервака?
    я 2 скрипта пробывал. На денвере фурычат а там нет :)
     
Статус темы:
Закрыта.

Поделиться этой страницей