HTML+mail()+PHP

  • Автор темы Guest
  • Дата начала
Статус
Закрыто для дальнейших ответов.
G

Guest

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

admin

Well-known member
08.08.2003
2 754
0
#2
Код:
<?
 $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);
 ?>
 
S

STYX

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

Guest

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

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

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

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

terchy.com@mail.ru
 

admin

Well-known member
08.08.2003
2 754
0
#5
Алан
низзя.
смотри форум. я где-то давал пример с SIMPLE MAPI.
 
H

HiDDeN

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

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

Guest

#7
это не письмо в HTML, это бред собачий! Надо ж АТТАЧЕМ это делать иначе большинство почтовиков за спам примут!
 
13.09.2006
23
0
#8
Код:
 <?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.
 
A

Andrew Stephanoff

#9
Код:
 $ToEmail = "=?utf-8?B?" . base64_encode("Брейль Андрей") . "?= <pite20@gmx.de>";
 
13.09.2006
23
0
#10
ещё один раз нужна помощь.
нашел скрипт PHP mailer with attachments.
в пришедшем письме величина приклеенного файла не как у оригинала.

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

Код:
<?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>
 
A

Andrew Stephanoff

#11
хмм.. а что значит -- не такое...
если проблемы с UTF-8, попробуй и тут
Код:
$Headers	 .= "Content-Type: $userfile_type; name=\"=?utf-8?B?" . base64_encode($userfile_type) . "?=\"\r\n";
 
13.09.2006
23
0
#12
в коде сверху с attachments от меня прикрепленный файл прйходит изменённый: 1. имя файла не оригинальное (a в виде: AT00045.txt) и 2. размер файла не как у оригинального а на 2 байта болше так что бинарные файлы потом неработоспособны.

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

вот рабочий код который позволяет отправлять в любой кодировке. PHP файл должен быть сохранён в UTF-8.
Код:
<?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);
?>
 
H

Hetman

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

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

Вложения

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

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

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

Hetman

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

а у меня

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

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

Hetman

#16
<!--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]
у меня тоже на денвере работает, а вот на серваке нет :)
 
D

deadt04ka

#17
Так что именно не работает? какие ошибки выдает?
 
H

Hetman

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