Forum Webscript.Ru
Программирование => Perl => Тема начата: Yaroslav от 01 Марта 2010, 11:10:36
-
если отправлять почту стандартным способом
open (MAIL, "|/usr/sbin/sendmail -t -f");
print MAIL "$text";
при этом если юзер вводит сообщение где в строке только 1 точка
Здрасте
.
перезвоните
я понимаю что это бредово выглядит, но все же.
по почте доходит только
Здрасте
.
как это исправить?
-
Здрасте
..
перезвоните
-
да и вообще, как оно работает?
# sendmail -t -f
sendmail: option requires an argument -- f
#
-
arto:
# sendmail -t -f
sendmail: option requires an argument -- f
#
там мыло добавлять надо
sendmail -t -f $mymail
-
open (MAIL, "|/usr/sbin/sendmail -t -f");
и где там "мыло"?
-
упусил что не загаживать лишними переменными код.
как окозалось есть те кто это не понял.
-
по существу будут ответы?
или проверять посторчно на наличие точки?
-
а чем вам не понравился первый ответ?
и что означает "построчно" ?
-
можно использовать -i, но это, afaik, непереносимо
-
arto:
а чем вам не понравился первый ответ?
сообщение набираю не я, а юзер.
вот юзеру хочеться пиать только 1 точку в строке.
построчно - это так
foreach (split /\\n/, $text) { print $_; }
-
зачем так сложно?
s#^\\.$#..#gm
-
arto:
s#^\\.$#..#gm
действительно, не подумал.
но все же, это единственный способ?
-
arto:
можно использовать -i, но это, afaik, непереносимо
-
open MAIL, \'|/usr/sbin/sendmail -t\' || die \'error sending message\';
print MAIL "From: from\\@mail.ru\\n";
print MAIL "To: to\\@mail.ru\\n";
print MAIL "Content-Type: text\\/plain\\n";
print MAIL "Subject: Тема письма\\n\\n";
print MAIL "Само письмо (никаких проблем с точками у меня никогда не было)\\n\\n";
close MAIL;
-
а и попробуйте!
и cat /dev/null | sendmail -d0.1 покажите
-
APL
$mail="Само письмо
.
(никаких проблем с точками у меня никогда не было)";
open MAIL, \'|/usr/sbin/sendmail -t\' || die \'error sending message\';
print MAIL "From: from\\@mail.ru\\n";
print MAIL "To: to\\@mail.ru\\n";
print MAIL "Content-Type: text\\/plain\\n";
print MAIL "Subject: Тема письма\\n\\n";
print MAIL "$mail";
close MAIL;
print "будут";
пробуй
-
У меня например такой сендмейл
Version 8.14.3
Compiled with: DNSMAP LDAPMAP LDAP_REFERRALS LOG MAP_REGEX MATCHGECOS
MILTER MIME7TO8 MIME8TO7 NAMED_BIND NETINET NETINET6 NETUNIX
NEWDB NIS NISPLUS PIPELINING SASLv2 SCANF SOCKETMAP STARTTLS
TCPWRAPPERS USERDB USE_LDAP_INIT XDEBUG
-
Yaroslav:
Вы сами пробовали? У меня работает!
-
Ааа... сорри, действительно не пришло после точки
-
Нужно вот так сделать с письмом, тогда дойдет полностью
$mail =~ s/\\n/\\r/g;