论坛首页 入门技术论坛

JAVA发送Email

浏览 8721 次
该帖已经被评为新手帖
作者 正文
   发表时间:2008-09-30  
       今天老师讲完第四章了,JAVAMAIL的,主要就是用JAVA来发送邮件了,嘿嘿,这样看来,后天的上机课是能够开网了,呵呵,好爽,今天讲课主要就是用JAVAMAIL发送邮件的,下面是发送邮件的代码:
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() {
    }
}
   发表时间:2008-10-13  
LZ好象是培训学校出来的?
0 请登录后投票
   发表时间:2008-10-14  
   上完大专接着上青鸟,不过只上了二期!!!
0 请登录后投票
   发表时间:2008-10-27  
上了就上了,有什么大不了,你们这些人,我公司有一个青鸟出来的,感觉还蛮牛的,比那些本科出来的,强多了.还好我是比他强
0 请登录后投票
   发表时间:2008-11-07   最后修改:2008-11-08
就是,培训有什么大不了。我是本科的,我班上很多同学毕业后都干不了软件开发,
如果他们想去搞软件开发估计也的去培训了。新注册的163邮箱好想不支持SMTP功能。
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics