Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Discussione: Invio email con SMTP

  1. #1

    Invio email con SMTP

    Premetto che sono alle prime armi di cgi, e che vorrei creare un modulo per l'invio di una mail da pagina web collegandosi attraverso il server smtp della mia posta elettronica. Che codice dovrei scrivere? Se può esservi utile guardando su cPanel del mio server risultano istallati i seguenti moduli Perl:
    Net::SMTP
    Mail::Mailer::smtp
    inoltre la Path to sendmail è /usr/sbin/sendmail

    Grazie

  2. #2
    Non ho capito bene cosa ti serve.

    Se devi fare inviare posta tramite un form del tuo sito guarda FormMail.pl su cui trovi un tutorial nel mio sito.
    Marco Allegretti
    shishii@tiscalinet.it
    Lang: PERL, PHP, SQL.
    Linux user n° 268623 Fedora Core 10, Fedora Core 6, Debian Sarge on mips

  3. #3
    Devo costruire uno script che ricavi da un form un indirizzo email e un testo...dopodiche si colleghi al mio account di posta elettronica(es. mail.libero.it) con i miei dati utenti(nome password)ed invii il testo inserito nel form all'email indicata.
    Quali sono le funzioni da mettere nelle procedure perl?

  4. #4
    devi usare il modulo Net::SMTP che trovi su http://search.cpan.org

    li trovi anche spiegazioni dettagliate.

    Comunque tieni presente che ad esempio proprio con libero non ci riusciresti, in quanto non consente di inviare posta se non sei collegato con una loro connessione, e non credo che il tuo server sia così.
    Marco Allegretti
    shishii@tiscalinet.it
    Lang: PERL, PHP, SQL.
    Linux user n° 268623 Fedora Core 10, Fedora Core 6, Debian Sarge on mips

  5. #5
    Grazie shishii, il mio era solo un esempio, non ho nessuna intenzione di provare a collegarmi al server libero.

    Do un'occhiata al cpan e spero di capire qualcosa visto che non ho mai programmato in Perl.
    Qualcuno ha mai fatto qualcosa simile a quello che devo fare e sa darmi delle indicazioni?

  6. #6
    ad esempio:

    codice:
    use Net::SMTP;
    
        $smtp = Net::SMTP->new('indirizzo_server_smtp');
    
        $smtp->mail('utente');
        $smtp->to('destinatario');
    
        $smtp->data();
        $smtp->datasend("To: destinatario\n");
        $smtp->datasend("\n");
        $smtp->datasend("Subject: oggetto\n");
        $smtp->datasend("testo\n");
        $smtp->dataend();
    
        $smtp->quit;
    Marco Allegretti
    shishii@tiscalinet.it
    Lang: PERL, PHP, SQL.
    Linux user n° 268623 Fedora Core 10, Fedora Core 6, Debian Sarge on mips

  7. #7
    Grazie mille, il codice e' molto chiaro e l'ho capito...solo mi chiedevo dove fosse inserita la password....

  8. #8
    nella documentazione allegata al modulo c'è indicata la funzione da usare per autenticarsi su server smtp che ne necessitano.
    Marco Allegretti
    shishii@tiscalinet.it
    Lang: PERL, PHP, SQL.
    Linux user n° 268623 Fedora Core 10, Fedora Core 6, Debian Sarge on mips

  9. #9
    Ho provato a seguire i tuoi consigli ed ho costruito il seguente codice:

    #!/usr/bin/perl

    use Net::SMTP;

    $smtp = Net::SMTP->new(
    Host => 'mailhost',
    Hello => 'mail.host.net'
    );
    $smtp->auth ( 'user', 'passwd' );


    $smtp->mail('usere');
    $smtp->to('destinatario@host.net');

    $smtp->data();
    $smtp->datasend("To: \destinatario@host.net\n");
    $smtp->datasend("\n");
    $smtp->datasend("Subject:\n");
    $smtp->datasend("ciao\n");
    $smtp->dataend();

    $smtp->quit;

    Questo script posto nella cartella cgi-bin del server viene richiamato da una semplicissima form:


    <html>

    <head>
    <title></title>
    </head>

    <body>
    <form action="cgi-bin/prova.cgi" method="post">
    <input type="submit" name="invia" valuie="invia">
    </body>

    </html>

    Dopodiche ho cambiato i permessi allo script impostandoli a 755, ma cliccando submit nel form il server mi restituisce il seguente errore:

    Internal Server Error
    The server encountered an internal error or misconfiguration and was unable to complete your request.
    Please contact the server administrator, webmaster@latrave.h3nt.net and inform them of the time the error occurred, and anything you might have done that may have caused the error.

    More information about this error may be available in the server error log.


    Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.


    Qualcuno ha qualche idea di quale sia il problema?

  10. #10
    il tuo codice non restituisce niente al browser...

    prova con:

    codice:
    print "content-type: text/html\n\n";
    all'inizio o alla fine della pagina...

    in più usa sempre queste direttive:

    codice:
    use strict;
    use warnings;
    use CGI::Carp "fatalsToBrowser";
    e solo in fase di testing anche:

    codice:
    use diagnostics;
    ci hai capito qualcosa??

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.