有谁用vj编过发邮件的程序吗 ?带身份验证啊 下载一个javamail 包,就可以了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 //最近写的一个javamail界面 支持验证 附件 html文本 即是可以直接发送htm脚本//e-mail SMTPimport java.awt.*;import java.awt.event.*;import java.io.*;import java.util.*;import javax.mail.*;//记得下载javamailAPIimport javax.mail.internet.*;import javax.activation.*;import javax.swing.*; public class Sender extends JFrame{ //javamail Session对象 protected Session session; //java message对象 protected MimeMessage mesg; protected Multipart mp; //GUI public JLabel smtpLab=new JLabel("SMTP服务器",SwingConstants.CENTER); public JTextField smtpTF=new JTextField("smtp.163.net",20);; public JLabel userLab=new JLabel("发送者邮箱",SwingConstants.CENTER); public JTextField userName=new JTextField("[email protected]",20);; public JLabel pwLab=new JLabel("登陆密码",SwingConstants.CENTER); public JPasswordField passWord=new JPasswordField(20);; public JLabel recpLab=new JLabel("收信者邮箱",SwingConstants.CENTER); public JTextField recp=new JTextField("[email protected]",20); public JLabel subjectLab=new JLabel("主题",SwingConstants.CENTER); public JTextField subject=new JTextField("HelloMail",20); public JButton browser=new JButton("浏览附件"); public JTextArea msg=new JTextArea(12,10); public JButton sendBT=new JButton("发送邮件"); public JButton clearBT=new JButton("清除文本"); //附件 Vector files=new Vector(); public Sender(String str){ super(str); Container cp=getContentPane(); cp.setLayout(new BorderLayout()); //north JPanel paneNorth=new JPanel(); paneNorth.setLayout(new GridLayout(6,2)); paneNorth.setBackground(Color.cyan); paneNorth.add(smtpLab); paneNorth.add(smtpTF); paneNorth.add(userLab); paneNorth.add(userName); paneNorth.add(pwLab); paneNorth.add(passWord); paneNorth.add(recpLab); paneNorth.add(recp); paneNorth.add(subjectLab); paneNorth.add(subject); paneNorth.add(new JLabel("选择附件",SwingConstants.CENTER)); paneNorth.add(browser); browser.setForeground(Color.BLUE); browser.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ JFileChooser chooser=new JFileChooser(); int returnVal; returnVal=chooser.showOpenDialog(Sender.this); if(returnVal==JFileChooser.APPROVE_OPTION){} files.addElement(chooser.getSelectedFile().getPath()); System.out.println(chooser.getSelectedFile().getPath()); } }); cp.add(paneNorth,BorderLayout.NORTH); //center JScrollPane msgScroll=new JScrollPane(msg); cp.add(msgScroll,BorderLayout.CENTER); //south JPanel panelSouth=new JPanel(); panelSouth.setBackground(Color.cyan); panelSouth.add(sendBT); sendBT.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ doSend(); } }); panelSouth.add(clearBT); clearBT.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ msg.setText(""); } }); cp.add(panelSouth,BorderLayout.SOUTH); setSize(400,300); pack(); } //添加附件 public void affix() { String fileAffix; Enumeration enum=files.elements(); while(enum.hasMoreElements()){ try{ MimeBodyPart mbp=new MimeBodyPart(); fileAffix=enum.nextElement().toString(); FileDataSource fs=new FileDataSource(fileAffix); mbp.setDataHandler(new DataHandler(fs)); mbp.setFileName(MimeUtility.encodeWord(fs.getName(),"GB2312",null)); //防止文件名字中文乱码 mp.addBodyPart(mbp); } catch(Exception e){ JOptionPane.showMessageDialog(this,"附件增加出错"+e); } } files.removeAllElements(); } //工作方法:发送邮件给smtp服务器 public void doSend(){ //java mail 允许处理许多的属性Properities Properties props=new Properties(); props.put("mail.smtp.host",smtpTF.getText()); props.put("mail.smtp.auth","true"); //Session session=Session.getDefaultInstance(props,null); session.setDebug(true); try{ mp=new MimeMultipart();//千万要小心,Multipart是抽象类,必须初始化为MimeMultipart //MIME message mesg=new MimeMessage(session); mesg.setFrom(new InternetAddress(userName.getText())); //To 地址//这里其实可以群发,用一个InternetAddress[],之后用mesg.addRecipients(..) InternetAddress toAddress=new InternetAddress(recp.getText()); mesg.addRecipient(Message.RecipientType.TO,toAddress); //cc地址 //InternetAddress ccAddress=new InternetAddress(message_cc); // mesg.addRecipient(Message.RecipientType.CC,ccAddress); //主题 mesg.setSubject(subject.getText()); //正文body支持html,自己写好看的脚本的啊 MimeBodyPart bp=new MimeBodyPart(); bp.setContent("<meta content=text/html; charset=gb2312>"+msg.getText(),"text/html;charset=GB2312"); mp.addBodyPart(bp); //附件 if(!files.isEmpty()) affix(); mesg.setContent(mp); mesg.saveChanges(); mesg.setSentDate(new Date()); //发送邮件 Transport transport = session.getTransport("smtp"); StringTokenizer tempName=new StringTokenizer(userName.getText(),"@"); transport.connect(smtpTF.getText(),tempName.nextToken(),passWord.getText()); transport.sendMessage(mesg,mesg.getRecipients(Message.RecipientType.TO)); //transport.send(mesg); //Transport.send(mesg); //transport.sendMessage(mesg, mesg.getAllRecipients()); JOptionPane.showMessageDialog(this,"邮件发送成功!"); }catch(Exception ex){ JOptionPane.showMessageDialog(this,"邮件发送失败,请检查网络或者参数"+ex); } } public static void main(String[] av){ JFrame.setDefaultLookAndFeelDecorated(true); Sender sm=new Sender("javaMail for ESMTP"); //居中 Dimension screen=Toolkit.getDefaultToolkit().getScreenSize(); Dimension frame=sm.getSize(); int newX=(screen.width-frame.width)/2; int newY=(screen.height-frame.height)/2; sm.setLocation(newX,newY); sm.show(); //exit operation //sm.addWindowListener(new WindowAdapter(){ //public void windowClosing(WindowEvent e){ //System.exit(0); //} //}); sm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } 感觉用VJ的写java,有点模棱两可。 linux下运行jar文件报错未找到资源文件 读txt文档一个小问题. 一道有趣的线程问题! 这是什么错误? 文件流close()方法使用的迷惑? 请问我学习jsp需要学习j2se部分的gui和网络编程和applet吗? 字符串转换不出现异常 请大家帮帮忙,急!!1 那里有关于jmf的开发资料和介绍,请那位仁兄帮忙(最好介绍一些好的资料)急!! 紧急!help!!!便宜分,又高又好赚!谁能在今天解决,高分献给谁 java画图如何实现windows里图标的选中效果,颜色加深变蓝,透明处不变! 关于(char)(0x00<<8|0x48)的一个问题
//e-mail SMTP
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
import javax.mail.*;//记得下载javamailAPI
import javax.mail.internet.*;
import javax.activation.*;
import javax.swing.*;
public class Sender extends JFrame{
//javamail Session对象
protected Session session; //java message对象
protected MimeMessage mesg;
protected Multipart mp;
//GUI
public JLabel smtpLab=new JLabel("SMTP服务器",SwingConstants.CENTER);
public JTextField smtpTF=new JTextField("smtp.163.net",20);;
public JLabel userLab=new JLabel("发送者邮箱",SwingConstants.CENTER);
public JTextField userName=new JTextField("[email protected]",20);;
public JLabel pwLab=new JLabel("登陆密码",SwingConstants.CENTER);
public JPasswordField passWord=new JPasswordField(20);;
public JLabel recpLab=new JLabel("收信者邮箱",SwingConstants.CENTER);
public JTextField recp=new JTextField("[email protected]",20);
public JLabel subjectLab=new JLabel("主题",SwingConstants.CENTER);
public JTextField subject=new JTextField("HelloMail",20);
public JButton browser=new JButton("浏览附件");
public JTextArea msg=new JTextArea(12,10);
public JButton sendBT=new JButton("发送邮件");
public JButton clearBT=new JButton("清除文本");
//附件
Vector files=new Vector();
public Sender(String str){
super(str);
Container cp=getContentPane();
cp.setLayout(new BorderLayout());
//north
JPanel paneNorth=new JPanel();
paneNorth.setLayout(new GridLayout(6,2));
paneNorth.setBackground(Color.cyan);
paneNorth.add(smtpLab);
paneNorth.add(smtpTF);
paneNorth.add(userLab);
paneNorth.add(userName);
paneNorth.add(pwLab);
paneNorth.add(passWord);
paneNorth.add(recpLab);
paneNorth.add(recp);
paneNorth.add(subjectLab);
paneNorth.add(subject);
paneNorth.add(new JLabel("选择附件",SwingConstants.CENTER));
paneNorth.add(browser);
browser.setForeground(Color.BLUE);
browser.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
JFileChooser chooser=new JFileChooser();
int returnVal;
returnVal=chooser.showOpenDialog(Sender.this);
if(returnVal==JFileChooser.APPROVE_OPTION){}
files.addElement(chooser.getSelectedFile().getPath());
System.out.println(chooser.getSelectedFile().getPath());
}
});
cp.add(paneNorth,BorderLayout.NORTH);
//center
JScrollPane msgScroll=new JScrollPane(msg);
cp.add(msgScroll,BorderLayout.CENTER);
//south
JPanel panelSouth=new JPanel();
panelSouth.setBackground(Color.cyan);
panelSouth.add(sendBT);
sendBT.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
doSend();
}
});
panelSouth.add(clearBT);
clearBT.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
msg.setText("");
}
});
cp.add(panelSouth,BorderLayout.SOUTH);
setSize(400,300);
pack();
}
//添加附件
public void affix() {
String fileAffix;
Enumeration enum=files.elements();
while(enum.hasMoreElements()){
try{
MimeBodyPart mbp=new MimeBodyPart();
fileAffix=enum.nextElement().toString();
FileDataSource fs=new FileDataSource(fileAffix);
mbp.setDataHandler(new DataHandler(fs));
mbp.setFileName(MimeUtility.encodeWord(fs.getName(),"GB2312",null));
//防止文件名字中文乱码
mp.addBodyPart(mbp);
}
catch(Exception e){
JOptionPane.showMessageDialog(this,"附件增加出错"+e);
}
}
files.removeAllElements();
}
//工作方法:发送邮件给smtp服务器
public void doSend(){
//java mail 允许处理许多的属性Properities
Properties props=new Properties();
props.put("mail.smtp.host",smtpTF.getText());
props.put("mail.smtp.auth","true");
//Session
session=Session.getDefaultInstance(props,null);
session.setDebug(true); try{
mp=new MimeMultipart();//千万要小心,Multipart是抽象类,必须初始化为MimeMultipart
//MIME message
mesg=new MimeMessage(session);
mesg.setFrom(new InternetAddress(userName.getText())); //To 地址//这里其实可以群发,用一个InternetAddress[],之后用mesg.addRecipients(..)
InternetAddress toAddress=new InternetAddress(recp.getText());
mesg.addRecipient(Message.RecipientType.TO,toAddress);
//cc地址
//InternetAddress ccAddress=new InternetAddress(message_cc);
// mesg.addRecipient(Message.RecipientType.CC,ccAddress); //主题
mesg.setSubject(subject.getText()); //正文body支持html,自己写好看的脚本的啊
MimeBodyPart bp=new MimeBodyPart();
bp.setContent("<meta content=text/html; charset=gb2312>"+msg.getText(),"text/html;charset=GB2312");
mp.addBodyPart(bp);
//附件
if(!files.isEmpty()) affix();
mesg.setContent(mp);
mesg.saveChanges();
mesg.setSentDate(new Date()); //发送邮件
Transport transport = session.getTransport("smtp");
StringTokenizer tempName=new StringTokenizer(userName.getText(),"@");
transport.connect(smtpTF.getText(),tempName.nextToken(),passWord.getText());
transport.sendMessage(mesg,mesg.getRecipients(Message.RecipientType.TO));
//transport.send(mesg);
//Transport.send(mesg);
//transport.sendMessage(mesg, mesg.getAllRecipients());
JOptionPane.showMessageDialog(this,"邮件发送成功!");
}catch(Exception ex){
JOptionPane.showMessageDialog(this,"邮件发送失败,请检查网络或者参数"+ex);
}
} public static void main(String[] av){
JFrame.setDefaultLookAndFeelDecorated(true);
Sender sm=new Sender("javaMail for ESMTP");
//居中
Dimension screen=Toolkit.getDefaultToolkit().getScreenSize();
Dimension frame=sm.getSize();
int newX=(screen.width-frame.width)/2;
int newY=(screen.height-frame.height)/2;
sm.setLocation(newX,newY);
sm.show();
//exit operation
//sm.addWindowListener(new WindowAdapter(){
//public void windowClosing(WindowEvent e){
//System.exit(0);
//}
//});
sm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}