Модераторы: xvr
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> sending mail, послать почту 
:(
    Опции темы
Гость_Shad0w
Дата 22.5.2005, 23:56 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Здраствуйте, меня интересует такой вопрос - в РНР есть такая функция mail. При ее помощи очень удобно посылать почту. Есть ли аналог етой функции в С?
  Вверх
Mayk
Дата 23.5.2005, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: 5
Всего: 134



В стандартах C99(стандарт языка), SUS(стандарт системы) нет. В Qt тоже нет(во всяком случае в третьей, кто знает, чего в 4ую напихают). Если есть время и/или любишь все сам делать, то RFC2821(Simple Mail Transport Protocol, брать, допустим, на ftp://ftp.isi.edu/in-notes/rfc2821.txt) тебе в руки. А заодно и RFC2822(Internet Message Format, ну, например, на ftp://ftp.isi.edu/in-notes/rfc2822.txt ). А если ленивый, то тебе дорога на sourceforge и/или freshmeat. Там есть какие-то libsmtp[++]. Хотя RFCшки почитать не повредит. И telnet <smtpserv> 25 тоже неплох в целях саморазвития.


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
shad0w
Дата 24.5.2005, 00:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 9.5.2005

Репутация: нет
Всего: нет



Прочитал я много доков, факов и листингов. Нигде не видел. Всё усложняется тем, что сокеты только начинаю учить (совсем недавно на С пересел). Так вот, а если зделать при помощи system. Тоесть, возможно ли зделать при помощи system() + mail? В мане мейла написано, что можна в качестве параметра передавать сабж, а можна ли передать тело письма.
ЗЫ как на С семулироровать нажатие Ctrl+d? Может есть готовый код для етой комбинации?
PM MAIL   Вверх
GrayCardinal
Дата 29.5.2005, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фигасе
****


Профиль
Группа: Завсегдатай
Сообщений: 3039
Регистрация: 9.11.2003

Репутация: 8
Всего: 58



libsmtp - извиняюсь, ИМХО ХЛАМ (да простят меня те, кто в нем разбирается smile). Глянь у меня на сайте GC-mailer, там ручками письма посылаются... кода всего чуть... правда тока для Линукс, для фри не тестил... Работает, нормально... А еще можно внешнюю прогу заюзать... Вариантов тьма и больше


--------------------
PM MAIL WWW   Вверх
Mayk
Дата 29.5.2005, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: 5
Всего: 134



ИМХО не стоит вызывать внешние программы без особой на то надобности, ибо медленно. GrayCardinal прав: никто ведь не мешает взять и скопировать код из того же mail. Тот же libsmtp раскурочить. При этом разобравшись что за код скопировали.

shad0w
Кстати, советую поискать книгу "Unix. Разработка сетевых приложений" У.Р. Стивенса. Хорошая вещь. А ctrl-d эмулировать не надо, если отважился на вызов system.
Сделай типа system("mail blah-blah-blah </tmp/MessageBody"); предварительно записав в /tmp/MessageBody тело сообщения.

Это сообщение отредактировал(а) Mayk - 29.5.2005, 16:02


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
GrayCardinal
Дата 30.5.2005, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фигасе
****


Профиль
Группа: Завсегдатай
Сообщений: 3039
Регистрация: 9.11.2003

Репутация: 8
Всего: 58



Дался вам "system"

Код

int m_pid;
m_pid = fork ();
if(m_pid > 0)
{
  wait (NULL);
}
else if (m_pid == 0)
{
  execlp ("/sbin/sendmail", "sendmail", NULL);
}
else
{
 perror ("fork");
}


и делать можно все что хош с процессом... вайт можно повесить на сигшилд, стандартный ввод для сендмэйл тоже можно свой задать (смотреть pipe и dup2)... в общем большой простор для размышлений. Можно popen заюзать, можно можно можно.......... можно простым коннектом к серваку (своему или к zmail smile smile smile, 25 порт, если что smile ), далее

HELO ВАСЯ\r\n

и т.д. по ходу.

ЗЫ
если вызов wait не делать, получаются такие зомби прикольные... ВСЕМ админам/модераторам не нравятся... чем мы и пользуемся smile

ЗЫЫ
да, и не советую system ("sendmail") (или popen и иже с ними) вызывать, если там есть хоть кусочек, который пришел "слева" ... ибо хакнут


--------------------
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Программирование под Unix/Linux"
xvr
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой "Код".
  • Вопросы мобильной разработки тут
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема »


 




[ Время генерации скрипта: 0.0446 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.