Модераторы: korob2001, ginnie

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> отправка файлов на мыло(Perl) 
:(
    Опции темы
Bezdna
Дата 27.2.2006, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Mail::Sender поставил
приведите скрипт плиз

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


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

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



Проще MIME::Lite или стандарт Net::SMTP

Код

use MIME::Lite;

$message = MIME::Lite->new(From      => '[email protected]',
                                                 To         => '[email protected]',
                                                 Subject => 'Hello');

$message->send(); 
#Или
#$message->send('smtp', 'server.lala.lala'); 

Добавлено @ 16:51
Кстати, пример прилагается к модулю smile
Код

        $sender = new Mail::Sender {
                smtp => 'mail.yourISP.com',
                from => '[email protected]',
                on_errors => undef,
        }
                or die "Can't create the Mail::Sender object: $Mail::Sender::Error\n";
        $sender->Open({
                to => '[email protected], [email protected]',
                cc => '[email protected]',
                subject => 'Sorry, I\'ll come later.'
        })
                or die "Can't open the message: $sender->{'error_msg'}\n";
        $sender->SendLineEnc("I'm sorry, but thanks to the lusers,
                I'll come at 10pm at best.");
        $sender->SendLineEnc("\nHi, Jenda");
        $sender->Close()
                or die "Failed to send the message: $sender->{'error_msg'}\n";



--------------------
PM   Вверх
sharq
Дата 27.2.2006, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Perl Liker
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 13.12.2004
Где: Ростов-на-Дону

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



Bezdna, плюс читай документацию по модулю - perldoc Mail::Sender или смотри электронную версию, например - здесь.

smile


--------------------
[color=gray]There's More Than One Way To Do It[/color]
PM MAIL WWW ICQ Skype   Вверх
rcdimon
Дата 27.2.2006, 20:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 766
Регистрация: 12.7.2004
Где: Москва

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



УУУ... я делал такую шнягу! Если интересно могу выложить коды и помочь с реализацией smile
PM MAIL ICQ   Вверх
nitr
Дата 28.2.2006, 00:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

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



rcdimon, сразу выкладывай. Человек ведь попросил smile См. вопрос smile


--------------------
PM   Вверх
rcdimon
Дата 28.2.2006, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 766
Регистрация: 12.7.2004
Где: Москва

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



На самом деле я писал огромную систему по работе с почтой.. с огромным количеством функций.. Щас наскоряк повыдерал все, что связано с отправкой. Там еще было много SQL запросов, потому что система работала с базой, я эти запросы щас повырезал. Так что этот код если сразу запустить скорее всего работать не будет, но принцип должен быть ясен. Немного изменить и все ОК.

Код

#!/usr/bin/perl

use Net::SMTP;
use MIME::Entity;

    my $top = build MIME::Entity   
                                    From           => "$user_from \<$user_email\>",
                                    To             => $to,
                                    'Message-ID'     => "<$mesid.89j\@mydomain.ru>",
                                    Cc             => $cc,
                                    Subject           => $subject,
                                    Date           => $date,
                                    'Reply-To'            => "$login_\@$mailserver_",
                                    Charset                => 'Windows-1251',
                                    'Return-Path'        => "\<$login_\@$mailserver_\>",
                                    Data           => $text;

        # --- ATTACHS ---
        my @attachs = param('file1');
        
        foreach (@attachs){
            if ($_ ne ''){
            my $file_name = $_;
            
            @server_file_name[$attach_count] = load_file ($file_name);        
             $downpath = $docs_path . $temp_path . '/';

            my @file_name = split(/\./,$file_name);
            my $mime_type = $mime_types{lc("@file_name[$#file_name]")};

            if (! $mime_type_1){
                $mime_type = 'application/x-unknown';
            }
               $top->attach( Path        => "$downpath$server_file_name[$attach_count]",
                             Filename    => "$file_name",
                          Type        => "$mime_type",
                          Encoding    => "base64");
            $attach_count++;
            }
        }
    
        send_mail($to, $cc, $top->stringify);

        foreach(@server_file_name){
                    unlink <$downpath/$_>;
                    unlink <$downpath/$_> || print_to_error_log ("Error unlink temp file. Action= write. $! - $_");
            }
            
sub send_mail{

    my ($to, $cc, $top) = @_;
    
    my  $smtp = Net::SMTP->new("$smtp_server", Timeout => 60, Debug=>1) || print 'Error';

        $smtp->mail("$user_email");
        $smtp->to($to);
        $smtp->data;
        $smtp->datasend($top);
        $smtp->dataend;
        $smtp->quit;
    }
    
sub load_file {
        my $real_file_name = shift;

        my $downpath = $docs_path . $temp_path . '/';

            my $ref = mysql_request_new( $sql );
            my $hash = @{$ref}[0];

            open(OUT,">$downpath/$server_file_name"); 
                binmode(OUT); 
                while (<$real_file_name>){
                    print OUT $_;
                } 
            close(OUT); 
        return ("$server_file_name");
}

%mime_types = (
    'ez'                =>    'application/andrew-inset',
    'hqx'                =>    'application/mac-binhex40',
    'cpt'                =>    'application/mac-compactpro',
    'doc'                =>    'application/msword',
    'bin'                =>    'application/octet-stream',
    'dms'                =>    'application/octet-stream',
    'lha'                =>    'application/octet-stream',
    'lzh'                =>    'application/octet-stream',
    'exe'                =>    'application/octet-stream',
    'class'                =>    'application/octet-stream',
    'oda'                =>    'application/oda',
    'pdf'                =>    'application/pdf',
    'ai'                =>    'application/postscript',
    'eps'                =>    'application/postscript',
    'ps'                =>    'application/postscript',
    'smi'                =>    'application/smil',
    'smil'                =>    'application/smil',
    'xls'                =>    'application/vnd.ms-excel',
    'ppt'                =>    'application/vnd.ms-powerpoint',
    'wbxml'                =>    'application/vnd.wap.wbxml',
    'wmlc'                =>    'application/vnd.wap.wmlc',
    'wmlsc'                =>    'application/vnd.wap.wmlscriptc',
    'bcpio'                =>    'application/x-bcpio',
    'vcd'                =>    'application/x-cdlink',
    'pgn'                =>    'application/x-chess-pgn',
    'cpio'                =>    'application/x-cpio',
    'csh'                =>    'application/x-csh',
    'dcr'                =>    'application/x-director',
    'dir'                =>    'application/x-director',
    'dxr'                =>    'application/x-director',
    'dvi'                =>    'application/x-director',
    'spl'                =>    'application/x-futuresplash',
    'gtar'                =>    'application/x-gtar',
    'hdf'                =>    'application/x-gtar',
    'js'                =>    'application/x-javascript',
    'skp'                =>    'application/x-koan',
    'skd'                =>    'application/x-koan',
    'skt'                =>    'application/x-koan',
    'skm'                =>    'application/x-koan',
    'latex'                =>    'application/x-latex',
    'nc'                =>    'application/x-netcdf',
    'cdf'                =>    'application/x-netcdf',
    'sh'                =>    'application/x-sh',
    'shar'                =>    'application/x-sh',
    'swf'                =>    'application/x-shockwave-flash',
    'sit'                =>    'application/x-stuffit',
    'sv4cpio'            =>    'application/x-sv4cpio',
    'sv4crc'            =>    'application/x-sv4crc',
    'tar'                =>    'application/x-tar',
    'tex'                =>    'application/x-tex',
    'texinfo'            =>    'application/x-texinfo',
    'texi'                =>    'application/x-texinfo',
    'ttr'                =>    'application/x-troff',
    'roff'                =>    'application/x-troff',
    'man'                =>    'application/x-troff-man',
    'me'                =>    'application/x-troff-me',
    'ms'                =>    'application/x-troff-ms',
    'ustar'                =>    'application/x-ustar',
    'src'                =>    'application/x-wais-source',
    'zip'                =>    'application/zip',
    'au'                =>    'audio/basic',
    'snd'                =>    'audio/basic',
    'mid'                =>    'audio/midi',
    'midi'                =>    'audio/midi',
    'kar'                =>    'audio/midi',
    'mpga'                =>    'audio/mpeg',
    'mp2'                =>    'audio/mpeg',
    'mp3'                =>    'audio/mpeg',
    'aif'                =>    'audio/x-aiff',
    'aiff'                =>    'audio/x-aiff',
    'aifc'                =>    'audio/x-aiff',
    'rm'                =>    'audio/x-pn-realaudio',
    'ram'                =>    'audio/x-pn-realaudio',
    'rm'                =>    'audio/x-pn-realaudio',
    'rpm'                =>    'audio/x-pn-realaudio-plugin',
    'ra'                =>    'audio/x-realaudio',
    'wav'                =>    'audio/x-wav',
    'pdb'                =>    'chemical/x-pdb',
    'xyz'                =>    'chemical/x-pdb',
    'bmp'                =>    'image/bmp',
    'gif'                =>    'image/gif',
    'ief'                =>    'image/ief',
    'jpeg'                =>    'image/jpeg',
    'jpg'                =>    'image/jpeg',
    'jpe'                =>    'image/jpeg',
    'png'                =>    'image/png',
    'tiff'                =>    'image/tiff',
    'tif'                =>    'image/tiff',
    'wbmp'                =>    'image/vnd.wap.wbmp',
    'ras'                =>    'image/x-cmu-raster',
    'pnm'                =>    'image/x-portable-anymap',
    'pbm'                =>    'image/x-portable-bitmap',
    'pgm'                =>    'image/x-portable-graymap',
    'ppm'                =>    'image/x-portable-pixmap',
    'rgb'                =>    'image/x-rgb',
    'xbm'                =>    'image/x-xbitmap',
    'xpm'                =>    'image/x-xpixmap',
    'xwd'                =>    'image/x-xwindowdump',
    'ig'                =>    'model/iges',
    'iges'                =>    'model/iges',
    'msh'                =>    'model/mesh',
    'mesh'                =>    'model/mesh',
    'silo'                =>    'model/mesh',
    'wrl'                =>    'model/vrml',
    'vrml'                =>    'model/vrml',
    'css'                =>    'text/css',
    'html'                =>    'text/html',
    'htm'                =>    'text/html',
    'asc'                =>    'text/plain',
    'txt'                =>    'text/plain',
    'php'                =>    'text/plain',
    'pl'                =>    'text/plain',
    'cgi'                =>    'text/plain',
    'cgf'                =>    'text/plain',
    'conf'                =>    'text/plain',
    'rtx'                =>    'text/richtext',
    'rtf'                =>    'text/rtf',
    'sgml'                =>    'text/sgml',
    'sgm'                =>    'text/sgml',
    'tsv'                =>    'text/tab-separated-values',
    'wml'                =>    'text/vnd.wap.wml',
    'wmls'                =>    'text/vnd.wap.wmlscript',
    'etx'                =>    'text/x-setext',
    'xml'                =>    'text/xml',
    'mpeg'                =>    'video/mpeg',
    'mpg'                =>    'video/mpeg',
    'mpe'                =>    'video/mpeg',
    'qt'                =>    'video/quicktime',
    'mov'                =>    'video/quicktime',
    'avi'                =>    'video/x-msvideo',
    'movie'                =>    'video/x-sgi-movie',
    'ice'                =>    'x-conference/x-cooltalk',
    'psd'                =>    'application/vnd.adobe.photoshop'
);

PM MAIL ICQ   Вверх
nitr
Дата 28.2.2006, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

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



А он просил Mail::Sender =)))))))))


--------------------
PM   Вверх
rcdimon
Дата 1.3.2006, 11:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 766
Регистрация: 12.7.2004
Где: Москва

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



Цитата

А он просил Mail::Sender =)))))))))


Ему надо отправлять файлы? Мой код это делает. Хочет с чем-то другим?- пусть ищет того, кто поможет с сендером.

Кстати тут не в МЭИЛ::Сендер дело вообще. Тут основная часть кода- закачка файлов на сервер и добавление их в письмо с помощью модуля MIME, который шифрует их по Base64 и создает правильную структуру письма. А слать потом это письмо можешь хоть сендмэилом! Я слал NET::SMTP

Цитата

А он просил Mail::Sender =)))))))))


Может ты предложишь код с Mail::Sender???????????????????? smile

Это сообщение отредактировал(а) rcdimon - 1.3.2006, 11:34
PM MAIL ICQ   Вверх
nitr
Дата 1.3.2006, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

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



rcdimon, sharq уже дал ссылку на документацию к модулю... так что можно заюзать обычный метод Ctrl+C -> Ctrl+V smile Все примеры в комплекте к модулю http://search.cpan.org/~jenda/Mail-Sender-0.8.13/Sender.pm , а тут его скачать http://search.cpan.org/CPAN/authors/id/J/J...r-0.8.13.tar.gz


--------------------
PM   Вверх
rcdimon
Дата 1.3.2006, 18:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 766
Регистрация: 12.7.2004
Где: Москва

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



Кстати мне это еще самому пригодится! smile
Добавлено @ 18:37
Только вотчто-то автора темы не видно smile
PM MAIL ICQ   Вверх
igorold
Дата 10.4.2006, 09:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 22.12.2005
Где: Россия->Урал-& gt;Миасс

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



rcdimon, а разве не надо в твоем коде добавить:
Код

$smtp->cc($cc);



--------------------
... у семи нянек 14 сисек ...  
Putin here, Putin there, Putin almost everywhere!
PM MAIL   Вверх
nitr
Дата 10.4.2006, 09:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

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



Думаю не обязательно...


--------------------
PM   Вверх
igorold
Дата 10.4.2006, 09:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 22.12.2005
Где: Россия->Урал-& gt;Миасс

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



у меня , пока я не вставил 3-ю строчку, письма не слались по адресам, указанным в переменной $MailCc ....
Код

    $smtp->mail($MailTo);
    $smtp->to($MailTo);
    $smtp->cc($MailCc);
    $smtp->data();
    $smtp->datasend("To: $MailTo\n");
    $smtp->datasend("Cc: $MailCc\n");
    $smtp->datasend($Result);



--------------------
... у семи нянек 14 сисек ...  
Putin here, Putin there, Putin almost everywhere!
PM MAIL   Вверх
nitr
Дата 10.4.2006, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

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



Cc на ско-ка помню это куда копию послать smile Поэтому необязательно... либо ошибаюсь (имхо наврядли)

Это сообщение отредактировал(а) nitr - 10.4.2006, 10:29


--------------------
PM   Вверх
igorold
Дата 10.4.2006, 11:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 22.12.2005
Где: Россия->Урал-& gt;Миасс

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



я так понимаю, что если переменная $cc не пустая, то надо по этим адресам отправить письма ...
сс: - это действительно копия, но в том смысле, что отправить письмо
то: (список адресов)
как основные, а также дополнительно по адресам:
сс: (список адресов)

может я не прав ... тогда хочу разяснений, что я не так понял ..

Это сообщение отредактировал(а) igorold - 10.4.2006, 11:31


--------------------
... у семи нянек 14 сисек ...  
Putin here, Putin there, Putin almost everywhere!
PM MAIL   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


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

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




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


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

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