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

📄 sendattachmail.java

📁 Java发送带附件的邮件类。 对javax.mail的封装
💻 JAVA
字号:
package com.commontools.email;
import javax.mail.Session;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMultipart;
import javax.activation.FileDataSource;
import javax.activation.DataHandler;

/**
 * 
 * created May 4, 2008
 * @author pendle
 *
 */
public class SendAttachMail {
	    public static void sendMessage(String smtpHost,
	                                   String from, String to,
	                                   String subject, String messageText,
	                                   String fileName)
	            throws MessagingException {

	        // Step 1:  Configure the mail session
	        java.util.Properties props = new java.util.Properties();
	        props.setProperty("mail.smtp.auth", "true");//指定是否需要SMTP验证
	        props.setProperty("mail.smtp.host", smtpHost);//指定SMTP服务器
	        props.put("mail.transport.protocol", "smtp");
	        Session mailSession = Session.getDefaultInstance(props);
	        mailSession.setDebug(true);//是否在控制台显示debug信息

	        // Step 2:  Construct the message
	        System.out.println("Constructing message -  from=" + from + "  to=" + to);
	        InternetAddress fromAddress = new InternetAddress(from);
	        InternetAddress toAddress = new InternetAddress(to);

	        MimeMessage testMessage = new MimeMessage(mailSession);
	        testMessage.setFrom(fromAddress);
	        testMessage.addRecipient(javax.mail.Message.RecipientType.TO, toAddress);
	        testMessage.setSentDate(new java.util.Date());
	        testMessage.setSubject(subject);

	        //  Step 3:  Create a body part to hold the "text" portion of the message
	        System.out.println("Constructing 'text' body part");
	        MimeBodyPart textBodyPart = new MimeBodyPart();
	        textBodyPart.setContent(messageText,"text/html;charset=gb2312");

	        //  Step 4:  Create a body part to hold the "file" portion of the message
	        System.out.println("Attaching 'file' body part: " + fileName);
	        MimeBodyPart fileBodyPart = new MimeBodyPart();
	        FileDataSource fds = new FileDataSource("c:\\a.rar");
	        fileBodyPart.setDataHandler(new DataHandler(fds));
	        fileBodyPart.setFileName(fds.getName());
	        System.out.println("Finished attaching file");

	        // Step 5:  Create a Multipart/container and add the parts
	        Multipart container = new MimeMultipart();
	        container.addBodyPart(textBodyPart);
	        container.addBodyPart(fileBodyPart);

	        // Step 6:  Add the Multipart to the actual message
	        testMessage.setContent(container);
	        System.out.println("Message constructed");

	        // Step 7:  Now send the message
	        Transport transport = mailSession.getTransport("smtp");
	        transport.connect(smtpHost, "sharingboy", "myshare");
	        transport.sendMessage(testMessage, testMessage.getAllRecipients());
	        transport.close();


	        System.out.println("Message sent!");
	    }

	    public static void main(String[] args) {

	        String fileName = "a.rar";
	        String smtpHost = "smtp.163.com";
	        String from = "nobody@163.com";
	        String to = "nobody@gmail.com";
	        String subject = "html邮件附件测试"; //subject javamail自动转码
	         StringBuffer theMessage = new StringBuffer();
	        theMessage.append("<h2><font color=red>这倒霉孩子</font></h2>");
	        theMessage.append("<hr>");
	        theMessage.append("<i>年年失望年年望</i>");

	        try {
	            SendAttachMail.sendMessage(smtpHost, from, to, subject, theMessage.toString(), fileName);
	        }
	        catch (javax.mail.MessagingException exc) {
	            exc.printStackTrace();
	        }
	    }
	}

⌨️ 快捷键说明

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