|
|
import java.security.Security;import java.util.Date;import java.util.Properties;import javax.mail.Authenticator;import javax.mail.Message;import javax.mail.MessagingException;import javax.mail.PasswordAuthentication;import javax.mail.Session;import javax.mail.Transport;import javax.mail.internet.AddressException;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;/** * 使用Gmail发送邮件 * * @author Winter Lau */public class GmailSender {public static void main(String[] args) throws AddressException,MessagingException {Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";// Get a Properties objectProperties props = System.getProperties();props.setProperty("mail.smtp.host", "smtp.gmail.com");props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);props.setProperty("mail.smtp.socketFactory.fallback", "false");props.setProperty("mail.smtp.port", "465");props.setProperty("mail.smtp.socketFactory.port", "465");props.put("mail.smtp.auth", "true");final String username = "[邮箱帐号]";final String password = "[邮箱密码]";Session session = Session.getDefaultInstance(props,new Authenticator() {protected PasswordAuthentication getPasswordAuthentication() {return new PasswordAuthentication(username, password);}});// -- Create a new message --Message msg = new MimeMessage(session);// -- Set the FROM and TO fields --msg.setFrom(new InternetAddress(username + "@mo168.com"));msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse("[收件人地址]", false));msg.setSubject("Hello");msg.setText("How are you");msg.setSentDate(new Date());Transport.send(msg);System.out.println("Message sent.");}} import java.io.*;public class IO {public static void main(String[] args) {try {// 1. Reading input by lines:BufferedReader in = new BufferedReader(new FileReader(args[0]));String s, s2 = new String();while ((s = in.readLine()) != null)s2 += s + "\n";in.close();// 1b. Reading standard input:BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));System.out.print("Enter a line:");System.out.println(stdin.readLine());// 2. Input from memoryStringReader in2 = new StringReader(s2);int c;while ((c = in2.read()) != -1)System.out.print((char) c);// 3. Formatted memory inputtry {DataInputStream in3 = new DataInputStream(// Oops: must use deprecated class:new StringBufferInputStream(s2));while (true)System.out.print((char) in3.readByte());} catch (EOFException e) {System.out.println("End of stream");}// 4. Line numbering & file outputtry {LineNumberReader li = new LineNumberReader(new StringReader(s2));BufferedReader in4 = new BufferedReader(li);PrintWriter out1 = new PrintWriter(new BufferedWriter(new FileWriter("IODemo.out")));while ((s = in4.readLine()) != null)out1.println("Line " + li.getLineNumber() + s);out1.close();} catch (EOFException e) {System.out.println("End of stream");}// 5. Storing & recovering datatry {DataOutputStream out2 = new DataOutputStream(new BufferedOutputStream(new FileOutputStream("Data.txt")));out2.writeDouble(3.14159);out2.writeBytes("That was pi");out2.close();DataInputStream in5 = new DataInputStream(new BufferedInputStream(new FileInputStream("Data.txt")));BufferedReader in5br = new BufferedReader(new InputStreamReader(in5));// Must use DataInputStream for data:System.out.println(in5.readDouble());// Can now use the "proper" readLine():System.out.println(in5br.readLine());} catch (EOFException e) {System.out.println("End of stream");}// 6. Reading and writing random access// files is the same as before.// (not repeated here)} catch (FileNotFoundException e) {System.out.println("File Not Found:" + args[1]);} catch (IOException e) {System.out.println("IO Exception");}}} // /:~
import java.io.UnsupportedEncodingException;import java.security.*;import java.util.Properties;import javax.mail.*;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeUtility;/** * 用于收取Gmail邮件 * * @author Winter Lau */public class GmailFetch {public static void main(String argv[]) throws Exception {Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";// Get a Properties objectProperties props = System.getProperties();props.setProperty("mail.pop3.socketFactory.class", SSL_FACTORY);props.setProperty("mail.pop3.socketFactory.fallback", "false");props.setProperty("mail.pop3.port", "995");props.setProperty("mail.pop3.socketFactory.port", "995");// 以下步骤跟一般的JavaMail操作相同Session session = Session.getDefaultInstance(props, null);// 请将红色部分对应替换成你的邮箱帐号和密码URLName urln = new URLName("pop3", "pop.gmail.com", 995, null,"[邮箱帐号]", "[邮箱密码]");Store store = session.getStore(urln);Folder inbox = null;try {store.connect();inbox = store.getFolder("INBOX");inbox.open(Folder.READ_ONLY);FetchProfile profile = new FetchProfile();profile.add(FetchProfile.Item.ENVELOPE);Message[] messages = inbox.getMessages();inbox.fetch(messages, profile);System.out.println("收件箱的邮件数:" + messages.length);for (int i = 0; i < messages.length; i++) {// 邮件发送者String from = decodeText(messages[i].getFrom()[0].toString());InternetAddress ia = new InternetAddress(from);System.out.println("FROM:" + ia.getPersonal() + '('+ ia.getAddress() + ')');// 邮件标题System.out.println("TITLE:" + messages[i].getSubject());// 邮件大小System.out.println("SIZE:" + messages[i].getSize());// 邮件发送时间System.out.println("DATE:" + messages[i].getSentDate());}} finally {try {inbox.close(false);} catch (Exception e) {}try {store.close();} catch (Exception e) {}}}protected static String decodeText(String text)throws UnsupportedEncodingException {if (text == null)return null;if (text.startsWith("=?GB") || text.startsWith("=?gb"))text = MimeUtility.decodeText(text);elsetext = new String(text.getBytes("ISO8859_1"));return text;}}
|
|