package test; import java.util.*; import java.io.*; import javax.mail.*; import javax.mail.internet.*; import javax.activation.*; public class SendMail { public static void main(String[] args) { try { Properties p = new Properties(); //Properties p = System.getProperties(); p.put("mail.smtp.auth", "true"); p.put("mail.transport.protocol", "smtp"); p.put("mail.smtp.host", "smtp.163.com");//这里设置服务是163还是其他服务如果用qq需要163换成qq p.put("mail.smtp.port", "25"); //建立会话 Session session = Session.getInstance(p); Message msg = new MimeMessage(session); //建立信息 msg.setFrom(new InternetAddress("[email protected]")); //发件人 msg.setRecipient(Message.RecipientType.TO, new InternetAddress("[email protected]")); //收件人 msg.setSentDate(new Date()); // 发送日期 msg.setSubject("答话稀有"); // 主题 msg.setText("快点下在"); //内容 // 邮件服务器进行验证 Transport tran = session.getTransport("smtp"); tran.connect("smtp.163.com", "发送人账号", "发送人密码"); // bluebit_cn是用户名,xiaohao是密码 tran.sendMessage(msg, msg.getAllRecipients()); // 发送 System.out.println("邮件发送成功"); } catch (Exception e) { e.printStackTrace(); } } }
上面的代码是一个简单的用JAVA发送邮件的例子,其中我们是用163的邮箱来发送邮件的,所以服务器是smtp.163.com,然后发件人是[email protected],注意,因为我们是用163的服务器来发送邮件的,所以我们的发件人就必须是163的邮箱,至于收件人的话可以是任意的邮箱。
import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.util.*; import javax.mail.*; import javax.mail.internet.*; import javax.activation.*; public class sendMailMul extends HttpServlet { private static final String CONTENT_TYPE = "text/html; charset=GBK"; //Initialize global variables public void init() throws ServletException { } //Process the HTTP Get request public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType(CONTENT_TYPE); PrintWriter out = response.getWriter(); request.setCharacterEncoding("gbk"); response.setCharacterEncoding("gbk"); String mailServer = request.getParameter("txtServer").trim(); String mailFrom = request.getParameter("txtFrom").trim(); String mailTo = request.getParameter("txtTo").trim(); String mailSubject = request.getParameter("txtSubject").trim(); String mailMessage = request.getParameter("txtMessage").trim(); String file = request.getParameter("txtAttachment").trim(); mailSubject = new String(mailSubject.getBytes("ISO-8859-1"), "gbk"); mailMessage = new String(mailMessage.getBytes("ISO-8859-1"), "gbk"); file = new String(file.getBytes("ISO-8859-1"), "gbk"); System.out.println("页面数据:"); System.out.println("mailServer:" + mailServer); System.out.println("mailFrom:" + mailFrom); System.out.println("mailTo:" + mailTo); System.out.println("mailSubject:" + mailSubject); System.out.println("mailMessage:" + mailMessage); System.out.println("file:" + file); Properties p = new Properties(); p.put("mail.smtp.auth", "true"); p.put("mail.transport.protocol", "smtp"); p.put("mail.smtp.host", mailServer); p.put("mail.smtp.port", "25"); Session mailsession = Session.getInstance(p); MimeMessage msg = new MimeMessage(mailsession); try { msg.setFrom(new InternetAddress(mailFrom)); msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(mailTo)); msg.setSentDate(new Date()); msg.setSubject(mailSubject); //设置邮件内容,作为Multipart对象的一部分 MimeBodyPart mbp = new MimeBodyPart(); mbp.setText(mailMessage); Multipart mulp = new MimeMultipart(); mulp.addBodyPart(mbp); //设置附件,作为Multipart对象的一部分 mbp = new MimeBodyPart(); DataSource source = new FileDataSource(file); mbp.setDataHandler(new DataHandler(source)); mbp.setFileName(file); mulp.addBodyPart(mbp); //设置信息内容,将Multipart 对象加入信息中 msg.setContent(mulp); Transport tran = mailsession.getTransport("smtp"); tran.connect(mailServer, "bluebit_cn", "xiaohao"); tran.sendMessage(msg, msg.getAllRecipients()); msg.writeTo(System.out); out.println("邮件已经发送到<br>" + mailTo); } catch (Exception e) { e.printStackTrace(); } out.close(); } //Process the HTTP Post request public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } //Clean up resources public void destroy() { } }