⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jsendmail.java

📁 这是一个学习ejb的基本程序
💻 JAVA
字号:
import java.util.*;
import javax.servlet.*; 
import javax.servlet.http.*; 
import java.io.*;
import java.net.*;

public class JSendMail extends HttpServlet
        {
         PrintWriter outs;              //定义输出对象
         static String PrintMailError;  //定义书写邮件错误信息
         int isMailError,isSendMailError;
         String FromAddress,ToAddress,CCAddress,MailServerHost; //定义相关地址变量
         String EMailSubject,EmailText,MSubject_chs,MText_chs;  //定义邮件内容变量
         Vector CCAddressVector; //定义抄送地址对象
         int k;

         public void service(HttpServletRequest rq, HttpServletResponse rp)
           {
            /* 初始变量和对象*/
            JSendMail jsendmail = new JSendMail();
            PrintMailError = null;
            isMailError = 0;
            isSendMailError = 0;
            FromAddress = null;
            ToAddress = null;
            MailServerHost = null;
            CCAddress = null;
            EMailSubject = null;
            EmailText = null;
            MSubject_chs = null;
            MText_chs = null;
            rp.setContentType("text/html");

            try
              {
                /* 处理前台的发送请求 */
                PrintWriter outs = rp.getWriter();
                FromAddress = rq.getParameter("txtfieldFrom");  //从前台表单获得变量值
                ToAddress = rq.getParameter("txtfieldTO");
                CCAddress = rq.getParameter("txtfieldCC");
                MailServerHost = rq.getParameter("txtfieldHost");
                EMailSubject = rq.getParameter("txtfieldSubject");
                EmailText = rq.getParameter("txtfieldText");
                MSubject_chs = new String(EMailSubject.getBytes("iso-8859-1")); //有效的处理中文字符集
                MText_chs = new String(EmailText.getBytes("iso-8859-1"));

                /* 检查Email参数的正确性(合法性) */
                isMailError = jsendmail.checkMailError(FromAddress,ToAddress,CCAddress,MailServerHost,MSubject_chs,MText_chs);
                if (isMailError == 1)
                  {
                   /*
                    *  当isMailError=1时,表示邮件的参数存在错误的值。
                    *  将错误的参数名和错误原因反馈给客户端。
                    */
                   outs.println(PrintMailError);
                  }
                else
                  {
                   /* 邮件参数正确,进行邮件的提交和转发处理 */
                   try
                     {
                      isSendMailError = jsendmail.sendEMail(FromAddress,ToAddress,MailServerHost,MSubject_chs,MText_chs);
                      if (isSendMailError == 1)
                        {
                         /* 邮件发送完成 */
                         outs.println("<br><center><font size='6' color='#688eff' face='方正姚体'>你的邮件已经成功发送!</font></center>");
                        }
                      else
                        {
                         /* 邮件发送未完成 */
                         outs.println("<br><font size='5' color='#FF66CC' face='方正姚体'>你的邮件没有被成功发送,其原因可能是你所填写的收件人邮箱地址或Mail服务器地址有错误。请重新检查一下所填写的邮件地址,谢谢!</font>");
                        }
                     }
                   catch(Exception e)
                     {
                      /* 处理在邮件发送时遇到的例外 */
                      outs.println("<br><font size='5' color='#FF66CC' face='方正姚体'>你的邮件没有被成功发送,其原因可能是你所填写的收件人邮箱地址或Mail服务器地址有错误。请重新检查一下所填写的邮件地址,谢谢!</font>");
                     }
                   if (CCAddress != null && CCAddress.length() > 1)
                     {
                      try
                        {
                         /* 处理多个收信人的邮件转发 */
                         CCAddressVector = new Vector(2,2);
                         CCAddressVector = jsendmail.cutCCMailAddress(CCAddress);

                         for(int j = 0;j < CCAddressVector.size();j++)
                           {
                            ToAddress = CCAddressVector.elementAt(j).toString().trim();
                            isSendMailError = jsendmail.sendEMail(FromAddress,ToAddress,MailServerHost,MSubject_chs,MText_chs);
                           }
                         if (isSendMailError == 1)
                           {
                            /* 邮件转发完成 */
                            outs.println("<br><br><center><font size='6' color='#688eff' face='方正姚体'>你的邮件已经成功转发!</font></center>");
                           }
                         else
                           {
                            /* 邮件转发未完成 */
                            outs.println("<br><br><font size='5' color='#FF66CC' face='方正姚体'>你的邮件没有被成功转发,其原因可能是你所填写的收件人邮箱地址或Mail服务器地址有错误。请重新检查一下所填写的邮件地址,谢谢!</font>");
                           }
                        }
                      catch(Exception e)
                        {
                         System.out.println("!1 程序出现了例外:" + e.toString());
                        }
                     }
                  }
              }
            catch (Exception e)
               {
                System.out.println("!2 程序出现了例外:" + e.toString());
               }
           }

         public int checkMailError(String cme_FromAddress,String cme_ToAddress,String cme_CCAddress,String cme_MailServerHost,String cme_MSubject_chs,String cme_MText_chs)
           {
            /* 这是一个检验Email参数完整性的方法(函数) */
            int i = 0;
            PrintMailError = "<center>系统发现你所提交的Email发送请求中含有以下的错误:</center>";

            if (cme_FromAddress == null || cme_FromAddress.length() < 1 || (cme_FromAddress.indexOf("@") == -1))
              {
               /* 参数不正确 */
               i = 1;
               PrintMailError = PrintMailError + "<br><center>(1) 发件人的邮箱地址为空或格式不正确;</center>";
              }
            if (cme_ToAddress == null || cme_ToAddress.length() < 1 || (cme_ToAddress.indexOf("@") == -1))
              {
               i = 1;
               PrintMailError = PrintMailError + "<br><center>(2) 收件人的邮箱地址为空或格式不正确;</center>";
              }

            if (cme_CCAddress != null && cme_CCAddress.length() > 1)
              {
               if (cme_CCAddress.indexOf("@") == -1)
                 {
                  i = 1;
                  PrintMailError = PrintMailError + "<br><center>(3) 抄送人的邮箱地址为空或格式不正确;</center>";
                 }
              }

            if (cme_MailServerHost == null || cme_MailServerHost.length() < 1 || (cme_MailServerHost.indexOf(".") == -1))
              {
               i = 1;
               PrintMailError = PrintMailError + "<br><center>(4) 邮件服务器的地址为空或格式不正确;</center>";
              }

            if ((cme_MSubject_chs == null || cme_MSubject_chs.length() < 1) && (cme_MText_chs == null || cme_MText_chs.length() < 1)) 
              {
               i = 1;
               PrintMailError = PrintMailError + "<br><center>(5) 邮件的主题和内容不可以同时为空;</center>";
              }

            return i;
           }

         public Vector cutCCMailAddress(String cma_CCAddress)
           {
            /* 这是一个获取多个Email转发地址的方法(函数) */
            Vector cutAddress = new Vector(2,2);
            StringTokenizer st = new StringTokenizer(cma_CCAddress,",");
            String v = null;
            int i = 0;
            int j = 0;
            int k = 0;

            for (i = 0;i < cma_CCAddress.length();i++)
              {
               /* 判断转发地址的个数 */
               j++;
               v = cma_CCAddress.substring(i,j);
               if(v.equals(","))
                 {
                  k++;
                 }
              }

            for(i = 0;i <= k;i++)
              {
               /* 以逗号为分隔符,将字符串分隔为若干个子字符串 */
               v = st.nextToken();
               if (v != null && v.length() > 1)
                 {
                  cutAddress.addElement(v.trim());
                 }
              }

            return cutAddress;
           }

         public int sendEMail(String sem_FromAddress,String sem_ToAddress,String sem_MailServerHost,String sem_MSubject_chs,String sem_MText_chs)
           {
            /* 这是一个发送邮件的方法(函数) */
            int i;

            try
              {
               Socket s = new Socket(sem_MailServerHost, 25);
               PrintStream out = new PrintStream(s.getOutputStream());
               BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream()));
               out.println("HELO " + "aaa");
               in.readLine();
               out.println("MAIL FROM: " + sem_FromAddress);
               in.readLine();
               out.println("RCPT TO: " + sem_ToAddress);
               in.readLine();
               out.println("DATA");
               out.println("Subject:" + sem_MSubject_chs);
               out.println("\n");
               in.readLine();
               out.println(sem_MText_chs);
               in.readLine();
               out.println(".\n");
               in.readLine();
               out.println("QUIT");
               i = 1;
              }
            catch(Exception e)
              {
               i = 0;
               System.out.println("!3 程序出现了例外:" + e.toString());
              }

            return i;
           }
        }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -