当前位置:  技术问答>java相关

那位老兄有java(jsp、servlet)发邮件的源代码?

    来源: 互联网  发布时间:2015-07-15

    本文导语:  我想做个发邮件的程序,只需实现发邮件基本功能,不用发附件。一定要好用。如果有的话请发过来,网上有一些不过大都不好用。最好是验证过的,如好用本人将另开贴酬谢!无聊者请勿打扰,谢谢! Email:bingziice...

我想做个发邮件的程序,只需实现发邮件基本功能,不用发附件。一定要好用。如果有的话请发过来,网上有一些不过大都不好用。最好是验证过的,如好用本人将另开贴酬谢!无聊者请勿打扰,谢谢!
Email:bingziice@sina.com

|

发送电子邮件





  Send Mail log



|








java.io.*
javax.activation.*
java.util.*
javax.mail.*
javax.mail.internet.*




   public class SmtpAuthenticator extends javax.mail.Authenticator
{
String usr=null; 
String pw=null; 
public SmtpAuthenticator(String user,String pass)
{
this.usr = user;
this.pw = pass;

protected javax.mail.PasswordAuthentication getPasswordAuthentication()
      {
          return new javax.mail.PasswordAuthentication(usr, pw);
      }
}
//中文处理 
public String getStr(String str)
{
try
{
String temp_p=str;
byte[] temp_t=temp_p.getBytes("ISO8859-1");
String temp=new String(temp_t);
return temp;
}
catch(Exception e)
{
}
return "null";
}




   
   Transport transport;
   String to_Addr = request.getParameter("TO_ADDR");
   String from_Addr = request.getParameter("FROM_ADDR");
   String Subject = getStr(request.getParameter("SUBJECT"));
   String Body = getStr(request.getParameter("CONTENT"));
   String atts = null;
   if(request.getParameter("attachFile") != null)
   {
    atts = request.getParameter("attachFile");
   }
   

   String msg1 = "";
   String msg2 = "";

   String smtp_addr = (String) session.getAttribute("SMTP_ADDR");
   String username = (String) session.getAttribute("USERNAME");
   String password = (String) session.getAttribute("PASSWORD");
   String needed = (String) session.getAttribute("NEEDED");

if(smtp_addr != null
 && username != null
 && password != null)
{
//发送过程
Properties props = System.getProperties();
props.put("mail.smtp.auth", needed);
props.put("mail.smtp.host", smtp_addr); 
//用户认证过程
SmtpAuthenticator sa = new SmtpAuthenticator(username,password);
Session sess=Session.getInstance(props,sa); 
sess.setDebug(false);

if(from_Addr != null
 && to_Addr != null)
 {
Message msg=new MimeMessage(sess);
msg.setSentDate(new Date());
msg.setFrom(new InternetAddress(from_Addr));
msg.setRecipient(Message.RecipientType.TO,new InternetAddress(to_Addr));
msg.setSubject(Subject);
  
if(atts!=null)
{
MimeBodyPart mbp1=new MimeBodyPart();
mbp1.setContent(Body,"text/plain;charset=Gb2312");
MimeBodyPart mbp2=new MimeBodyPart();
FileDataSource fds=new FileDataSource(atts);
mbp2.setDataHandler(new DataHandler(fds));
mbp2.setFileName(fds.getName());
Multipart mp=new MimeMultipart();
mp.addBodyPart(mbp1);
mp.addBodyPart(mbp2);
msg.setContent(mp);
}
else
{
msg.setContent(Body,"text/plain;charset=Gb2312");
}
transport=sess.getTransport("smtp");
  if(needed.equals("true"))
{
transport.connect(smtp_addr,username,password);
transport.sendMessage(msg,msg.getAllRecipients());
}
else
{
transport.send(msg);
}
transport.close();
}
}
else 
response.sendRedirect("login.xml");

  

msg1
to_Addr
msg2
    atts

 



方法都在里面啦,自己可以抽出来,java可以代码复用

|
*****  教材示例  *********
/*
 * Copyright (c) 2000 David Flanagan.  All rights reserved.
 * This code is from the book Java Examples in a Nutshell, 2nd Edition.
 * It is provided AS-IS, WITHOUT ANY WARRANTY either expressed or implied.
 * You may study, use, and modify it for any non-commercial purpose.
 * You may distribute it non-commercially as long as you retain this notice.
 * For a commercial use license, or to purchase the book (recommended),
 * visit http://www.davidflanagan.com/javaexamples2.
 */
package com.davidflanagan.examples.net;
import java.io.*;
import java.net.*;

/**
 * This program sends e-mail using a mailto: URL
 **/
public class SendMail {
    public static void main(String[] args) {
        try {
            // If the user specified a mailhost, tell the system about it.
            if (args.length >= 1)
System.getProperties().put("mail.host", args[0]);
    
            // A Reader stream to read from the console
            BufferedReader in =
new BufferedReader(new InputStreamReader(System.in));
    
            // Ask the user for the from, to, and subject lines
            System.out.print("From: ");
            String from = in.readLine();
            System.out.print("To: ");
            String to = in.readLine();
            System.out.print("Subject: ");
            String subject = in.readLine();
    
            // Establish a network connection for sending mail
            URL u = new URL("mailto:" + to);      // Create a mailto: URL 
            URLConnection c = u.openConnection(); // Create its URLConnection
            c.setDoInput(false);                  // Specify no input from it
            c.setDoOutput(true);                  // Specify we'll do output
            System.out.println("Connecting...");  // Tell the user
            System.out.flush();                   // Tell them right now
            c.connect();                          // Connect to mail host
            PrintWriter out =                     // Get output stream to host
                new PrintWriter(new OutputStreamWriter(c.getOutputStream()));

            // Write out mail headers.  Don't let users fake the From address
            out.print("From: "" + from + "" n");
            out.print("To: " + to + "n");
            out.print("Subject: " + subject + "n");
            out.print("n");  // blank line to end the list of headers

            // Now ask the user to enter the body of the message
            System.out.println("Enter the message. " + 
       "End with a '.' on a line by itself.");
            // Read message line by line and send it out.
            String line;
            for(;;) {
                line = in.readLine();
                if ((line == null) || line.equals(".")) break;
                out.print(line + "n");
            }
    
            // Close (and flush) the stream to terminate the message 
            out.close();
            // Tell the user it was successfully sent.
            System.out.println("Message sent.");
        }
        catch (Exception e) {  // Handle any exceptions, print error message.
            System.err.println(e);
            System.err.println("Usage: java SendMail []");
        }
    }
}

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 各位老兄,我刚入门怎么样才能学好JAVA呢?
  • 哪位老兄有jsp/java做的用户权限管理例程?
  • 那位老兄知道如何在中文系统上安装日文输入法。哪儿有可下载???
  • Shell里的符号可真多啊,哪位老兄能解释一下啊,或提供相关资料,谢了!
  • 那位老兄知道有jbuilder的教程下载,感激不尽,定给分?
  • 麻烦hht(影舞者)老兄看过来!!
  • 哪位老兄使用过patch命令?
  • xmvigour(微电)老兄,还是哪个问题。
  • 哪位老兄做过在指定坐标位置(x,y)画点或者用图片代替点的applet
  • 老兄,帮我看看键盘事件处理的问题
  • 我是个新手,请各位老兄给介绍基本好书?
  • 刚才那2位老兄 看到此贴请进来 有些问题请教
  • 各位老兄好,通过ObjectoutputStream ,ObjectINputStream 如何读写数据
  • 老兄,你有Together5.02的Crack吗?给mail一只吧!多谢啊!我刚在www.io.com下了Together5.02啊!
  • 百分:在redhat linux启动过程中,到starting xfs就过不去了,请各位老兄帮忙
  • 各位老兄对java的多态性是如何理解的?java的多态性有什么好处?
  • 就上次 icedust(冰封尘想) 老兄说得,还有一些问题,请大家看看
  • 如何关闭窗口时触发执行数据库操作?各位老兄,我急用呢!!解决问题,一定给分!!
  • java 可以使用 可是javac不可以使用。老兄帮帮忙
  • 我的JBUILDER5启动时,怎么要我注册,有没有那位老兄给我一个注册码,我不想给老美美圆


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3