浏览 8721 次
锁定老帖子 主题:JAVA发送Email
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2008-09-30
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"); p.put("mail.smtp.port", "25"); //建立会话 Session session = Session.getInstance(p); Message msg = new MimeMessage(session); //建立信息 msg.setFrom(new InternetAddress("bluebit_cn@163.com")); //发件人 msg.setRecipient(Message.RecipientType.TO, new InternetAddress("javaonline@163.com")); //收件人 msg.setSentDate(new Date()); // 发送日期 msg.setSubject("答话稀有"); // 主题 msg.setText("快点下在"); //内容 // 邮件服务器进行验证 Transport tran = session.getTransport("smtp"); tran.connect("smtp.163.com", "bluebit_cn", "xiaohao"); // bluebit_cn是用户名,xiaohao是密码 tran.sendMessage(msg, msg.getAllRecipients()); // 发送 System.out.println("邮件发送成功"); } catch (Exception e) { e.printStackTrace(); } } } 上面的代码是一个简单的用JAVA发送邮件的例子,其中我们是用163的邮箱来发送邮件的,所以服务器是smtp.163.com,然后发件人是bluebit_cn@163.com,注意,因为我们是用163的服务器来发送邮件的,所以我们的发件人就必须是163的邮箱,至于收件人的话可以是任意的邮箱。 整个发邮件的思想:导入相关的包→生成属性对象→创建javamail会话→编写javamail消息→发送javamail消息。 导入包用不着多说,生成属性对象的话就是开关部分,这个的话全世界都是一样的,只是注意那个邮件服务器的设置就行,对了,额外说句,发送邮件是用SMTP协议,接收邮件才是POP3协议或者其他的。。。 下面的话还是发送邮件的,不过是通过HTML网页来发送的,网页制作我就不多说了,下面是源码,而且是带有附件的源码: 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() { } } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-10-13
LZ好象是培训学校出来的?
|
|
返回顶楼 | |
发表时间:2008-10-14
上完大专接着上青鸟,不过只上了二期!!!
|
|
返回顶楼 | |
发表时间:2008-10-27
上了就上了,有什么大不了,你们这些人,我公司有一个青鸟出来的,感觉还蛮牛的,比那些本科出来的,强多了.还好我是比他强
|
|
返回顶楼 | |
发表时间:2008-11-07
最后修改:2008-11-08
就是,培训有什么大不了。我是本科的,我班上很多同学毕业后都干不了软件开发,
如果他们想去搞软件开发估计也的去培训了。新注册的163邮箱好想不支持SMTP功能。 |
|
返回顶楼 | |