[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Функция mail PHP и работа с MS Exchange
Insonicum
Всем доброго времени суток! Вопросов несколько, начну с основного:

Notice: Undefined variable: subject in c:\apache_swissknife\сайты\localhost01\html\forma\mail.php on line 6


Warning:
mail(): "sendmail_from" not set in php.ini or custom "From:" header missing in c:\apache_swissknife\сайты\localhost01\html\forma\mail.php on line 6

теперь код программы:
PHP
<?php
$to 
"mydba@mail.ru";
$headers['From']= "randomamber@mail.ru";
$headers['Subject']= "Вам пришло письмо";
$body "Привет!";
mail($to,$subject,$body);

Собственно лазил в php.ini:

[mail function]
SMTP = smtp.mail.ru
sendmail_from = randomamber@mail.ru


Надеюсь мне кто-нибудь сможет подсказать.



Спустя 2 минуты, 48 секунд (29.06.2009 - 16:20) waldicom написал(а):
Переведи ошибку, все сразу станет понятно.
Также обрати внимание на строку 6, на вторую переменную в функции mail() и попытайся найти эту переменную в строчках от первой до пятой.

Спустя 1 час, 10 минут, 32 секунды (29.06.2009 - 17:30) Insonicum написал(а):
Вторая переменная была написана в первом случае с заглавной буквы, а во-втором с маленькой. исправил.

с английским не важно у меня, если честно.

вот поменял код:
PHP
<?php
$to 
"randomamber@mail.ru";
$from "mydba@mail.ru";
$subject "Greetings!";
$body "Hello, dear!";
mail($to,$subject,$body);

что не так?

ошибка:

Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing in c:\apache_swissknife\сайты\localhost01\html\forma\mail.php on line 6

строка 6 - это mail($to,$subject,$body);

"sendmail_from" не набор в php.ini или обычае "От:" заголовок, отсутствующий в

но заголовок же присутствует - $subject = "Greetings!";

Спустя 6 минут, 11 секунд (29.06.2009 - 17:36) waldicom написал(а):
Не указано, от кого посылается письмо.
Советую взять готовый пакет phpmailer.

Спустя 6 минут, 45 секунд (29.06.2009 - 17:43) Insonicum написал(а):
Хорошо. Тогда так почему не работает?


mail($to,$from,$subject,$body);

добавил $from. результат тот же.

Спустя 7 минут, 1 секунда (29.06.2009 - 17:50) waldicom написал(а):
Потому что почитайте описание функции. Вы на чтение описания функции затратите гораздо меньше времени, чем на форуме + поймете больше.

Спустя 6 минут, 3 секунды (29.06.2009 - 17:56) Insonicum написал(а):
1. Как отправить письмо средствами PHP

http://phpclub.ru/detail/article/mail
PHP
<?php
mail
("randomamber@mail.ru""the subject"$message,
     
"From: mydba@mail.ru \r\n"
    
."X-Mailer: PHP/" phpversion());




PHP
<?php
$to  
"Mary &lt;mary@example.com>, " ;
$to .= "Kelly &lt;kelly@example.com>";

$subject "Birthday Reminders for August";

$message '
<html>
    <head>
        <title>Birthday Reminders for August</title>
    </head>
    <body>
        <p>Here are the birthdays upcoming in August!</p>
    </body>
</html>'
;

$headers  "Content-type: text/html; charset=windows-1251 \r\n";
$headers .= "From: Birthday Reminder <birthday@example.com>\r\n";
$headers .= "Bcc: birthday-archive@example.com\r\n";

mail($to$subject$message$headers);

брал оттуда...должно работать по логике. ммм?

Спустя 1 минута, 41 секунда (29.06.2009 - 17:58) waldicom написал(а):
Ну так скопируйте эту строчку, особенно четвертый аргумент.

Спустя 7 минут, 13 секунд (29.06.2009 - 18:05) Insonicum написал(а):
Notice: Undefined variable: message in c:\apache_swissknife\сайты\localhost01\html\forma\mail2.php on line 2

Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in c:\apache_swissknife\сайты\localhost01\html\forma\mail2.php on line 4


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

Спустя 9 минут, 26 секунд (29.06.2009 - 18:15) Insonicum написал(а):
выручите!
PHP
<?php
mail
("randomamber@mail.ru""the subject"$message,
     
"From: mydba@mail.ru \r\n"
    
."X-Mailer: PHP/" phpversion());


что в этом коде не так? ну чтО7 почему он ругается? ааааааа)

Спустя 4 минуты, 11 секунд (29.06.2009 - 18:19) Insonicum написал(а):
PHP
<?php
function email($to,$subject,$text) {
  
$from="randomamber@mail.ru".$_SERVER['HTTP_HOST'];
  
$subject="=?Windows-1251?B?".base64_encode($subject)."?=";
  
$headers "From: Automailer at ".$_SERVER['HTTP_HOST']."<$from>\r\n";
  
$headers.= "Reply-To: $from\r\n";
  
$headers.= "Content-Type: text/plain; charset=\"windows-1251\"\r\n";
  
$headers.= "Content-Transfer-Encoding: 8bit\r\n";
  
mail($to$subject$text$headers);
}


попробовал такой вариант. сообщений и предупреждений никаких не выдаёт. просто белый экран. но письмо на почту тоже не приходит.

не понятно. все варианты, которые нахожу не работают.

Спустя 3 минуты, 44 секунды (29.06.2009 - 18:22) Insonicum написал(а):
Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set()


эта ошибка теперь постоянно вылазиет

Спустя 10 минут, 56 секунд (29.06.2009 - 18:33) waldicom написал(а):
Это значит, что теперь со стороны пхп все нормально и только сервер не отвечает.
Тут уже надо смотреть, что с почтовым сервером.

Спустя 8 минут, 5 секунд (29.06.2009 - 18:41) Insonicum написал(а):
смотреть в настройках php.ini?

Спустя 1 минута, 12 секунд (29.06.2009 - 18:43) waldicom написал(а):
Цитата (Insonicum @ 29.06.2009 - 17:41)
смотреть в настройках php.ini?

Нет, смотреть, запущен ли сам сервер или нет. Настроен ли он правильно или нет.
С пхп на данном этапе ничего общего.

Спустя 3 минуты, 30 секунд (29.06.2009 - 18:46) Insonicum написал(а):
ясно. я юзаю windows XP, и пользуюсь апочем свискнайф - три в одном.

подскажите что дальше конкретно надо сделать?
программа запущена, а значит веб-сервер тоже, если речь идёт о веб-сервере.

поясните для чайника. что делать дальше. как проверить? и т.д.

Спустя 12 минут, 37 секунд (29.06.2009 - 18:59) waldicom написал(а):
Цитата
и пользуюсь апочем свискнайф

Это видимо что-то очень навороченное.
Веб-сервер, апаче - хорошо. Но для отправки почты нужен работающий почтовый сервер. Читать отсюда: Почтовый сервер

Вот этот вроде простенький и под винду: http://www.courierms.ru/

Спустя 11 минут, 38 секунд (29.06.2009 - 19:10) Insonicum написал(а):
То есть как я понял без скажем Microsoft Exchange Server или его аналога я не смогу отправить письмо себе на почту? а почта у меня находится на сайте www.mail.ru

То есть для начала надо поставить ещё дополнительное программное обеспечение в виде почтового сервера. верно?

как всё сложно то....


Спустя 1 час, 13 минут, 35 секунд (29.06.2009 - 20:24) waldicom написал(а):
да, все верно.

Спустя 1 час, 50 минут, 25 секунд (29.06.2009 - 22:14) Insonicum написал(а):
спасибо. ситуация прояснилась.

а какие почтовые сервера используют профессионалы? каким почтовым серверам отдают предпочтения? и какие минусы есть у таких серверов как sendmail?

Спустя 8 часов, 18 минут, 50 секунд (30.06.2009 - 06:33) waldicom написал(а):
Поговаривают, что sendmail, postfix и exim одни из самых распространенных.
Sendmail монстроподобный ужас, в твое случае он не нужен, postfix - легкий и быстронастраиваемый, exim - этого вообще можно настроить как хочешь.
Но они все не под виндовз, насколько я знаю.
А что с тем, который courierms.ru ?

Спустя 1 день, 14 часов, 53 минуты, 59 секунд (1.07.2009 - 21:27) Insonicum написал(а):
сообщаю, что если юзать как я апач свискнайф, не обязательно ставить почтовый сервер, ведь там есть эмулятор smtp, но если ставить по отдельности, то надо ставить почтовый сервер.

Спустя 13 минут, 4 секунды (1.07.2009 - 21:40) Insonicum написал(а):
<?php
$to = 'randomamber@mail.ru';
$subject = 'Проверяем связь 2';
$message = 'Если это письмо дошло до вас, значит наш скрипт работает успешно';
mail($to, $subject, $message,
"From: mydba@mail.ru \r\n"
."X-Mailer: PHP/" . phpversion());
?>


вот правильный вариант скрипта.

Спустя 3 дня, 19 часов, 17 минут, 17 секунд (5.07.2009 - 16:58) Insonicum написал(а):
Warning: mail(): SMTP server response: 554 no valid RCPT address specified in c:\apache_swissknife\сайты\localhost01\html\forma\3.php on line 21

мда....всё же свис кнайф часто глюкает...вот эмулятор SMTP не очень хорошее дело. наверное лучше по отдельности всё тсавить и настраивать почтовый сервер.

Спустя 12 минут, 42 секунды (5.07.2009 - 17:10) PandoraBox2007 написал(а):
Вероятно требуется авторизация на smtp-сервере, прежде чем куда-то что-то отправлять.

Спустя 1 час, 55 минут, 19 секунд (5.07.2009 - 19:06) Insonicum написал(а):
<?php
session_start();
$a = $_SESSION['login'];
$_SESSION['mail'] = $_POST['mail'];
$b = $_SESSION['mail'];
?>
<html>
<title>
New project
</title>
<body background ="topfon.jpg">
<b>
<center><h4><font face = "Verdana" color = "white">Отправка данных на почту</font></h4>
<?php
If (isset($_POST['login']) && isset($_POST['mail']))
{
$to = $_POST['mail'];
$subject = 'Проверяем связь 2';
$message = 'Если это письмо дошло до вас, значит наш скрипт работает успешно';
mail($to, $subject, $message,
"From: mydba@mail.ru \r\n"
."X-Mailer: PHP/" . phpversion());
echo "Напоминаю, что ваше имя - $a, а ваш e-mail - $b";
echo 'Вам было отправлено письмо на почту';
}
else
If (!isset($_POST['login']) && isset($_POST['mail']))
{
echo 'Сожалеем, но письмо не было отправлено.';
}
?>
<br>
<font color = "pink">
<br>
Спасибо! Мы вышлем вам письмо на почту!
</font>
<br>
<br>
<a href = "1.php">Вернуться назад</a>
</center>
</b>
</center>
</body>
</html>

никаких ошибок скрипт не выдаёт, но и письмо не отсылает. странно
в то же время проверял, отправка без авторизации возможна через smtp.

Спустя 17 минут, 44 секунды (5.07.2009 - 19:23) Sylex написал(а):
Insonicum
прямо удивительно! blink.gif blink.gif blink.gif

Спустя 47 минут, 48 секунд (5.07.2009 - 20:11) Insonicum написал(а):
Цитата (Sylex @ 5.07.2009 - 16:23)
Insonicum
прямо удивительно! blink.gif blink.gif blink.gif

что не так то сделано?

Спустя 11 часов, 15 минут, 57 секунд (6.07.2009 - 07:27) Sylex написал(а):
Insonicum
отправка почты - эт всегда "заморочки":
1. бывают пытаются отправлять с винды у себя дома, ниче не настроив, конечно smile.gif
2. для *nix систем - не заданы настройки для sendmail/exim
3. неверно составлены заголовки
4. не указан Return-Path
5. письмо не проходит спам-фильтр
6. с локального SMTP-сервера у себя дома по-моему письмо не отправишь, т.к. хост должен резолвиться

UPD и еще за reproduce case тебе 2.

Спустя 7 часов, 20 минут, 55 секунд (6.07.2009 - 14:48) Insonicum написал(а):
и еще за reproduce case

что есть такое? объясните.

Спустя 29 минут, 47 секунд (6.07.2009 - 15:18) Sylex написал(а):
Цитата
reproduce case - минимальные условия для воспроизведения проблемы. Минимальный код, который можно скопировать, запустить, и он наглядно продемонстрирует проблему.


А ты развел такую длинную песню...

повторяюсь - отправить почту со своего сервера тебе вряд ли удастся... иначе спама было бы щас в 10 раз больше, а его итак дофига...

если ты хочешь отправить почту, используя внешний SMTP-сервер (почта на mail.ru, yandex.ru и проч.) с аутентификацией, то эт просто:

http://dimants.ru/archives/36
http://www.rucable.net/We-send-mail-with-smtp-auth.html
http://i-novice.net/smtp-otpravka-pisem-s-...-svoimi-rukami/
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.