ik ben net een paar weken bezig met java, en vroeg me dan ook af of het mogelijk is om middels een java-applet een email te versturen naar iemand..dus dat ik de form maak in java en met java ook verstuur..is dit mogelijk ?
dat werkt met streaming enzo, een heel gedoe, en je moet een eigen server draaien waar de applicatie op zit waar de applet mee communiceert.
je hebt een beperking op socketverbindingen die je kan leggen met een applet.
een applet kan alleen verbinding maken met de server waarvan hij geladen is.
dus de applet staat bv. op mijn server:
http://occultforces.mine.nu/java/applet.html -> applet.class (oid)
die kan alleen een socket verbinding maken met bv. de smtp server van deze host. (in dit geval is dat dus occultforces.mine.nu:25).
Dan nog het smtp-protocol toepassen (rfc requesten)
en klaar!
succes.
btw.
je kan wel verbinding maken met een andere smtp server bv. maar dan moet je de applet signen.
een applet kan alleen verbinding maken met de server waarvan hij geladen is.
dus de applet staat bv. op mijn server:
http://occultforces.mine.nu/java/applet.html -> applet.class (oid)
die kan alleen een socket verbinding maken met bv. de smtp server van deze host. (in dit geval is dat dus occultforces.mine.nu:25).
Dan nog het smtp-protocol toepassen (rfc requesten)
en klaar!
btw.
je kan wel verbinding maken met een andere smtp server bv. maar dan moet je de applet signen.
er is dus geen functie als
"mailto" (bijvoorbeeld) om de zelfgemaakte form ergens heen te sturen ? das jammer..
"mailto" (bijvoorbeeld) om de zelfgemaakte form ergens heen te sturen ? das jammer..
Jongens lees eens wat boeken...
Maar ja..
dit is een app.. dus je moet hem ombouwen tot applet..
Houd dan eve rekening dat een applet ALLEEN kan connecten naar de server waar hij vandaan kwam.
Lukt zo wel he ???
Maar ja..
Core java volume 2 advanced features./**
* @version 1.00 1999-08-27
* @author Cay Horstmann
*/
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.net.*;
import java.io.*;
import javax.swing.*;
public class MailTest
{ public static void main(String[] args)
{ JFrame frame = new MailTestFrame();
frame.show();
}
}
class MailTestFrame extends JFrame
implements ActionListener
{ public MailTestFrame()
{ setTitle("MailTest");
setSize(300, 300);
addWindowListener(new WindowAdapter()
{ public void windowClosing(WindowEvent e)
{ System.exit(0);
}
} );
getContentPane().setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.weightx = 0;
gbc.weighty = 0;
gbc.weightx = 0;
add(new JLabel("From:"), gbc, 0, 0, 1, 1);
gbc.weightx = 100;
from = new JTextField(20);
add(from, gbc, 1, 0, 1, 1);
gbc.weightx = 0;
add(new JLabel("To:"), gbc, 0, 1, 1, 1);
gbc.weightx = 100;
to = new JTextField(20);
add(to, gbc, 1, 1, 1, 1);
gbc.weightx = 0;
add(new JLabel("SMTP server:"), gbc, 0, 2, 1, 1);
gbc.weightx = 100;
smtpServer = new JTextField(20);
add(smtpServer, gbc, 1, 2, 1, 1);
gbc.fill = GridBagConstraints.BOTH;
gbc.weighty = 100;
message = new JTextArea();
add(new JScrollPane(message), gbc, 0, 3, 2, 1);
response = new JTextArea();
add(new JScrollPane(response), gbc, 0, 4, 2, 1);
gbc.weighty = 0;
JButton sendButton = new JButton("Send");
sendButton.addActionListener(this);
JPanel buttonPanel = new JPanel();
buttonPanel.add(sendButton);
add(buttonPanel, gbc, 0, 5, 2, 1);
}
private void add(Component c, GridBagConstraints gbc,
int x, int y, int w, int h)
{ gbc.gridx = x;
gbc.gridy = y;
gbc.gridwidth = w;
gbc.gridheight = h;
getContentPane().add(c, gbc);
}
public void actionPerformed(ActionEvent evt)
{ SwingUtilities.invokeLater(new Runnable()
{ public void run()
{ sendMail();
}
});
}
public void sendMail()
{ try
{ Socket s = new Socket(smtpServer.getText(), 25);
out = new PrintWriter(s.getOutputStream());
in = new BufferedReader(new
InputStreamReader(s.getInputStream()));
String hostName
= InetAddress.getLocalHost().getHostName();
send(null);
send("HELO " + hostName);
send("MAIL FROM: " + from.getText());
send("RCPT TO: " + to.getText());
send("DATA");
out.println(message.getText());
send(".");
s.close();
}
catch (IOException exception)
{ response.append("Error: " + exception);
}
}
public void send(String s) throws IOException
{ if (s != null)
{ response.append(s + "\n");
out.println(s);
out.flush();
}
String line;
if ((line = in.readLine()) != null)
response.append(line + "\n");
}
private BufferedReader in;
private PrintWriter out;
private JTextField from;
private JTextField to;
private JTextField smtpServer;
private JTextArea message;
private JTextArea response;
}
dit is een app.. dus je moet hem ombouwen tot applet..
Houd dan eve rekening dat een applet ALLEEN kan connecten naar de server waar hij vandaan kwam.
Lukt zo wel he ???
Atari Terminator AI - LegoBlockX3 = ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ.ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ.T008ᖟ
Deze source zou moeten werken. Ik heb zelf ook al eens een java app geschreven die email verstuurt.
Eigenlijk stelt het gewoon nix voor
Eigenlijk stelt het gewoon nix voor
Ryzen9 5900X; 16GB DDR4-3200 ; RTX-4080S ; 7TB SSD
Wat ik heb gedaan, is een PHP script geschreven die email kan versturen. Wanuit een Applet kun je wel URl's openen. Dus kun je wel (op de achtergrond) mailen. Met de communicatie tussen Java en je Php. Zo hoef je ook gene mailserver te draaien
Verwijderd
En wat als je een mailto: URL gebruikt?
zoiets:
URL url = new URL("mailto:myfriend@t.net");
URLConnection c = url.openConnection();
c.setDoInput(false);
c.setDoOutput(true);
OutputStream s = c.openOutputStream();
s.write ...
s.close();
? Werkt dit
zoiets:
URL url = new URL("mailto:myfriend@t.net");
URLConnection c = url.openConnection();
c.setDoInput(false);
c.setDoOutput(true);
OutputStream s = c.openOutputStream();
s.write ...
s.close();
? Werkt dit
Verwijderd
Ja fijn, dat werkt dus op geen enkele browser, tenzij je eerst allerlei troep van SUN gaat downloaden op Java2 aan de praat te krijgen. Kun je net zo goed OE distribueren!Op donderdag 01 februari 2001 10:01 schreef im_ik het volgende:
Jongens lees eens wat boeken...
[..]
Core java volume 2 advanced features.
Ze gebuiken het allen voor de Gui.Op donderdag 01 februari 2001 10:14 schreef Belgarion het volgende:
[..]
Ja fijn, dat werkt dus op geen enkele browser, tenzij je eerst allerlei troep van SUN gaat downloaden op Java2 aan de praat te krijgen. Kun je net zo goed OE distribueren!
Het ging erom dat hij hieruit de code kan rippen die ie nodig heeft om een mailtje te sturen.
Dam mag niet eens meer wat VB. code sturen...:( om mensen te helpen
Atari Terminator AI - LegoBlockX3 = ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ.ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ.T008ᖟ
Moet je even testen:)Op donderdag 01 februari 2001 10:13 schreef Belgarion het volgende:
En wat als je een mailto: URL gebruikt?
zoiets:
URL url = new URL("mailto:myfriend@t.net");
URLConnection c = url.openConnection();
c.setDoInput(false);
c.setDoOutput(true);
OutputStream s = c.openOutputStream();
s.write ...
s.close();
? Werkt dit
Wat ik zelf gebruikt heb, is de javax.mail packages. Dan kun je dus een formulier maken in html en de data opsturen naar bijvoorbeeld een jsp pagina, of servlet. Dan moet er op de server wel een servlet engine draaien, zoiets als Tomcat 4.0, deze heeft alle mail klassen al meegeleverd.
Ik heb op m'n eigen site net een aantal dagen terug een mail client gezet, gemaakt in jsp die pop3 en imap kan lezen en mail versturen heb ik ook al eens met deze zelfde klassen gedaan. Hierover zijn genoeg spullen en voorbeelden te vinden op internet. Het is een andere manier, maar werkt wel beter, want de bezoeker hoeft geen java te downloaden....
Ik heb op m'n eigen site net een aantal dagen terug een mail client gezet, gemaakt in jsp die pop3 en imap kan lezen en mail versturen heb ik ook al eens met deze zelfde klassen gedaan. Hierover zijn genoeg spullen en voorbeelden te vinden op internet. Het is een andere manier, maar werkt wel beter, want de bezoeker hoeft geen java te downloaden....
Pagina: 1