java en email

Pagina: 1
Acties:
  • 111 views sinds 30-01-2008
  • Reageer

  • whitehouse
  • Registratie: Maart 2000
  • Laatst online: 25-08 22:31
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 ?

  • Mastermind
  • Registratie: Februari 2000
  • Laatst online: 23:09
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.

  • Scorpion
  • Registratie: April 2000
  • Laatst online: 18-01-2024

Scorpion

not to lame to read BitchX.doc

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.

  • whitehouse
  • Registratie: Maart 2000
  • Laatst online: 25-08 22:31
er is dus geen functie als
"mailto" (bijvoorbeeld) om de zelfgemaakte form ergens heen te sturen ? das jammer..

  • im_ik
  • Registratie: November 2000
  • Laatst online: 28-12-2025

im_ik

dat ben ik dus

Jongens lees eens wat boeken...

Maar ja..
/**
* @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;
}
Core java volume 2 advanced features.

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ᖟ


  • GarBaGe
  • Registratie: December 1999
  • Laatst online: 21:48
Deze source zou moeten werken. Ik heb zelf ook al eens een java app geschreven die email verstuurt.
Eigenlijk stelt het gewoon nix voor :)

Ryzen9 5900X; 16GB DDR4-3200 ; RTX-4080S ; 7TB SSD


  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

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 :?

Verwijderd

Op donderdag 01 februari 2001 10:01 schreef im_ik het volgende:
Jongens lees eens wat boeken...
[..]
Core java volume 2 advanced features.
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!

  • im_ik
  • Registratie: November 2000
  • Laatst online: 28-12-2025

im_ik

dat ben ik dus

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!
Ze gebuiken het allen voor de Gui.

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ᖟ


  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

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 :?
Moet je even testen:)

  • ycode
  • Registratie: Februari 2000
  • Laatst online: 31-08 13:15
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....
Pagina: 1