Отправка e-mail с помощью php и html

Ответить
Doom
Сообщения: 4
Зарегистрирован: 20.10.2011
Здравствуйте. Не могли бы вы помочь, с созданием отправки e-mail, с помощью php и html? Просто с html я знаю
<a href="mailto://1111111@rambler.ru"><img border="0" src="images/style/mail.png" title="Отправить e-mail">
А как сделать чтобы можно было с внешнего php файла, и с использованием html файла отправлять. В интернете находил пару статей, но они не подошли мне т.к. там только определённое мыло нужно от отправителя.

Jon Madison
Сообщения: 25
Зарегистрирован: 25.09.2011
что значет с внешнего?
если хотите с локальной машины,то ставте сэндмейл. там вроде все доходчиво и понятно. после подключайте пхп скриптик и оформляйте его в хтмл

Doom
Сообщения: 4
Зарегистрирован: 20.10.2011
Jon Madison писал(а):что значет с внешнего?
Php код не в html файле, а отдельном файле с раширением php
Jon Madison писал(а):если хотите с локальной машины,то ставте сэндмейл. там вроде все доходчиво и понятно. после подключайте пхп скриптик и оформляйте его в хтмл
Я попросил 2 кода в html файл и в php файл, без всяких дополнительных скриптов. Пусть самый простые это не важно. Просто срочно очень нужно. :)

Аватара пользователя
Distructor
Администратор
Сообщения: 1607
Зарегистрирован: 28.12.2009

megageorge
Сообщения: 1
Зарегистрирован: 22.02.2012
Distructor писал(а):viewtopic.php?t=180
мучаюсь второй день с формой обратной связи

Код: Выделить всё

<?php

// это пример со страницы http://coder.v-tanke.ru/viewtopic.php?t=180 немного доработаный для формы

function send_email($name_f, $email_f, $to, $subject, $message, $filecontent, $filename) {
        $from_email = $email_f;  // Адрес отправителя
        $from_name  = $name_f;           // Имя отправителя
        $message = str_replace("\n.", "\n..", $message);

        $boundary = "--".md5(uniqid(time())); // генерируем разделитель
       
        $multipart .= "--$boundary\r\n";
        $multipart .= "Content-Type: text/html; charset=UTF-8; \r\n";
        $multipart .= "Content-Transfer-Encoding: Quot-Printed\r\n\r\n";
        $multipart .= "$message\n\n";

        $message_part = "--$boundary\n";
        $message_part .= "Content-Type: application/octet-stream\r\n";
        $message_part .= "Content-Transfer-Encoding: base64\r\n";
        $message_part .= "Content-Disposition: attachment; filename = \"".$filename."\"\r\n\r\n";
        $message_part .= chunk_split(base64_encode($filecontent))."\r\n";
       
        $multipart .= $message_part."--$boundary--\r\n";
       
        $headers  = 'MIME-Version: 1.0' . "\r\n";
        $headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n";
        $headers .= 'From: =?utf-8?b?' . base64_encode($from_name) . "?= <$from_email>\r\n";
        mail ( $to, '=?utf-8?b?'.base64_encode($subject).'?=', $multipart, $headers );
    }

//это получаю данные из формы

$recipient  = "my@mail.ru";
$name       = $_POST["name"];
$email      = $_POST["email"];
$subject    = $_POST["text"];
$message    = $_POST["msg"];
$option_1 = $_POST["selected_option"];
$file       = $_POST["file"];

//формирую сообщение

$mymessage = 'Сообщение: '.$message.'\r\n'.'Опция 1: '.$option_1.'\r\n';

// отправляю

send_email($name, $email, $recipient, $subject , "Сообщение", $_POST["file"], "Added");
?>

1 проблема (ОСНОВНАЯ)
никак не хочет отсылать файл, подозреваю что данный указанный в уроке способ подходит для файла лежащего на сервере, а как сделать для файла передаваемого из формы методом POST?
уже все облазил в интернете никак не получается =(((((((((((


2 проблема.
Не могу добиться переноса строк в теле сообщения \r\n
почемуто не переносит на новую строку =(


Заранее спасибо =)

Аватара пользователя
Distructor
Администратор
Сообщения: 1607
Зарегистрирован: 28.12.2009
megageorge писал(а):никак не хочет отсылать файл
ты неверно пытаешь обратиться к файлу. почитай http://softtime.ru/scripts/upload.php
в данном случае тебе для прикрепления к письму необходимо получить содержимое файла. Например

Код: Выделить всё

...
if(is_uploaded_file($_FILES["file"]["tmp_name"]))
{
     $file_content = file_get_contents( $_FILES["file"]["tmp_name"] );
     send_email($name, $email, $recipient, $subject , "Сообщение", $file_content, "Added");
}
megageorge писал(а):Не могу добиться переноса строк в теле сообщения \r\n
для текста письма в данном случае используется тип "text/html", поэтому перенос ставится стандартный html-ный, т.е. "<br>".

Ответить