Przekazanie zmiennych argumentow

Odpowiedz Nowy wątek
2011-07-28 09:48
pr3fix
0

Witam,

Zaczynam przygode z Java i probuje sobie napisac prosty programik, ktory bedzie wysylal maile.
Idea jest taka ze bedzie on wywolywany z poziomu bazy danych (SQL Server) z parametrami (email, tytul, tresc).

Napisalem cos takiego:
klasa Main

import javax.mail.*;
import javax.mail.internet.*;
import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;

import java.util.Properties;

public class Main {

    private static final String SMTP_HOST_NAME = "xxx";
    private static final String SMTP_AUTH_USER = "yyy";
    private static final String SMTP_AUTH_PWD  = "ppp";

    public static void main(String[] args) throws Exception{
       new Main().test();

       Argumenty a;
       a = new Argumenty();
       a.email = args[1];
       a.tresc = args[2];
       a.tytul = args[3];

    }

    public void test() throws Exception{

        Properties props = new Properties();
        props.put("mail.transport.protocol", "smtp");
        props.put("mail.smtp.host", SMTP_HOST_NAME);
        props.put("mail.smtp.auth", "true");

        Authenticator auth = new SMTPAuthenticator();
        Session mailSession = Session.getDefaultInstance(props, auth);
        // uncomment for debugging infos to stdout
        // mailSession.setDebug(true);
        Transport transport = mailSession.getTransport();

        MimeMessage message = new MimeMessage(mailSession);
        message.setContent(a.tresc, "text/plain");
        message.setFrom(new InternetAddress("[email protected]"));
        message.setSubject(a.tytul);
        message.addRecipient(Message.RecipientType.TO,
             new InternetAddress(a.email));

        transport.connect();
        transport.sendMessage(message,
            message.getRecipients(Message.RecipientType.TO));
        transport.close();
    }

    private class SMTPAuthenticator extends javax.mail.Authenticator {
        public PasswordAuthentication getPasswordAuthentication() {
           String username = SMTP_AUTH_USER;
           String password = SMTP_AUTH_PWD;
           return new PasswordAuthentication(username, password);
        }
    }

}

oraz klasa Argumenty:


   public class Argumenty
    {
        public String email, tytul, tresc;

    }

Wiem ze w klasie Main przekombinowalem efekt jaki chce uzyskac to wywolanie programu z trzema parametrami:
email, tytul, tresc i przkeazanie ich do 'public void test() throws Exception'.
Umieszczenie zmiennych w odpowiednich miejsach.
Samo wysylanie maili idzie bez problemu mam problem z przekazaniem tych argumentow gdyz nie wiem jak to zrobic.
Mozecie podpowiedziec jak to zrobic?

Pozostało 580 znaków

2011-07-28 10:00
bo
0

Po pierwsze, tu jest błąd

       a.email = args[1];
       a.tresc = args[2];
       a.tytul = args[3];

tablice w Javie (w szczególności args) są indeksowane od zera.
Wpisz w terminalu (na konsoli) java Main arg1 arg2 arg3.

Pozostało 580 znaków

2011-07-28 10:13
pr3fix
0

ok pomijajac ten fakt, zacznijmy ze w tym miejscu jestem w stanie zwrocic te wartosci, natomiast nie umie ich przekazac dalej o to tylko mi chodzi.

Pozostało 580 znaków

2011-07-28 12:05
bo
0
    public static void main(String[] args) throws Exception{
       Argumenty a = new Argumenty();
       a.email = args[0];
       a.tresc = args[1];
       a.tytul = args[2];
       new Main().test(a); 
    }
 
    public void test(Argumenty a) throws Exception{

Pozostało 580 znaków

2011-07-28 12:29
pr3fix
0

O to wlasnie chodzilo.
Dzieki wielkie!

Pozdrawiam

Pozostało 580 znaków

2011-07-28 12:33
0

Newbie alert! Raportować takie przypadki?


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0