以下是从您的机器发送带有附件的电子邮件的示例-
<%@ page import = "java.io.*,java.util.*,javax.mail.*"%> <%@ page import = "javax.mail.internet.*,javax.activation.*"%> <%@ page import = "javax.servlet.http.*,javax.servlet.*" %> <% String result; //需要提及收件人的电子邮件ID。 String to = "abcd@gmail.com"; //需要提及发件人的电子邮件ID- String from = "mcmohd@gmail.com"; //假设您正在从本地主机发送电子邮件 String host = "localhost"; //获取系统属性对象 Properties properties = System.getProperties(); //设置邮件服务器 properties.setProperty("mail.smtp.host", host); //获取默认的Session对象。 Session mailSession = Session.getDefaultInstance(properties); try { //创建一个默认的MimeMessage对象。 MimeMessage message = new MimeMessage(mailSession); //Set From:标题的标头字段。 message.setFrom(new InternetAddress(from)); //设置为:标头的标头字段。 message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); //设置主题:标题字段 message.setSubject("这是主题行!"); //创建消息部分 BodyPart messageBodyPart = new MimeBodyPart(); //填写信息 messageBodyPart.setText("This is message body"); //创建多部分消息 Multipart multipart = new MimeMultipart(); //设置短信部分 multipart.addBodyPart(messageBodyPart); //第二部分是附件 messageBodyPart = new MimeBodyPart(); String filename = "file.txt"; DataSource source = new FileDataSource(filename); messageBodyPart.setDataHandler(new DataHandler(source)); messageBodyPart.setFileName(filename); multipart.addBodyPart(messageBodyPart); //发送完整的消息部分 message.setContent(multipart ); //发送信息 Transport.send(message); String title = "Send Email"; result = "Sent message successfully...."; } catch (MessagingException mex) { mex.printStackTrace(); result = "Error: unable to发送信息...."; } %> <html> <head> <title>Send Attachment Email using JSP</title> </head> <body> <center> <h1>Send Attachment Email using JSP</h1> </center> <p align = "center"> <%out.println("Result: " + result + "\n");%> </p> </body> </html>
现在让我们运行上面的JSP,以将文件作为附件发送,并在给定的电子邮件ID上发送一条消息。
如果需要将用户标识和密码提供给电子邮件服务器以进行身份验证,则可以如下设置这些属性:
输出结果
props.setProperty("mail.user", "myuser"); props.setProperty("mail.password", "mypwd");