从apache tomcat发送邮件

我正在使用Tomcat 6作为我的web服务器和JSP作为前端的Web项目。 我想从网络服务器向电子邮件帐户发送邮件。 我怎样才能做到这一点?

首先,这是我在JSP中的表单:

Enter Employee ID
Enter Your Email Address
    

使用Java-Mail API。

  • 从JSP获取所需的输入,
  • 将其发布到Servlet
  • 调用服务方法从Servlet发送Mail
  • 使用Java Mail API从服务方法发送邮件,这是一个快速示例

这工作正常(gmail示例):

 import java.util.Properties; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.PasswordAuthentication; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; public class SendMail { public static void main(String[] args) { final String username = "your_usename_goes_here"; final String password = "your_password_goes_here"; Properties props = new Properties(); props.put("mail.smtp.auth", "true"); props.put("mail.smtp.starttls.enable", "true"); props.put("mail.smtp.host", "smtp.gmail.com"); props.put("mail.smtp.port", "587"); Session session = Session.getInstance(props, new javax.mail.Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(username, password); } }); try { Message message = new MimeMessage(session); message.setFrom(new InternetAddress("fromSomeone@gmail.com")); message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("toSomeone@gmail.com")); message.setSubject("A testing mail header !!!"); message.setText("Dear Mail Crawler," + "\n\n No spam to my email, please!"); Transport.send(message); System.out.println("Done"); } catch (MessagingException e) { throw new RuntimeException(e); } } } 

这是最简单的方法,使用MailToURLConnection 。 无需其他库。

 public static void sendMail(String from, String to, String subject, String body, String[] headers) throws IOException { System.setProperty("mail.host", "localhost"); URL u = new URL("mailto:"+to); MailToURLConnection con = (MailToURLConnection)u.openConnection(); OutputStream os = con.getOutputStream(); OutputStreamWriter w = new OutputStreamWriter(os); DateFormat df = new SimpleDateFormat("E, d MMM yyyy H:mm:ss Z"); Date d = new Date(); String dt = df.format(d); String mid = d.getTime()+from.substring(from.indexOf('@')); w.append("Subject: "+subject+"\r\n"); w.append("Date: " +dt+ "\r\n"); w.append("Message-ID: <"+mid+ ">\r\n"); w.append("From: "+from+"\r\n"); w.append("To: <"+to+">\r\n"); if(headers!=null) { for(String h: headers) w.append(h).append("\r\n"); } w.append("\r\n"); w.append(body.replace("\n", "\r\n")); w.flush(); w.close(); os.close(); con.close(); }