java发送附件的邮件,JavaMail发送带有附件的邮件

package com.what21.network.mail;

import java.io.IOException;

import java.util.Date;

import java.util.Properties;

import javax.mail.Authenticator;

import javax.mail.Message;

import javax.mail.MessagingException;

import javax.mail.Multipart;

import javax.mail.PasswordAuthentication;

import javax.mail.Session;

import javax.mail.Transport;

import javax.mail.internet.AddressException;

import javax.mail.internet.InternetAddress;

import javax.mail.internet.MimeBodyPart;

import javax.mail.internet.MimeMessage;

import javax.mail.internet.MimeMultipart;

public class EmailAttachmentSender {

/**

* @param host

* @param port

* @param userName

* @param password

* @param toAddress

* @param subject

* @param message

* @param attachFiles

* @throws AddressException

* @throws MessagingException

*/

public static void sendEmailWithAttachments(String host, String port,

final String userName, final String password, String toAddress,

String subject, String message, String[] attachFiles)

throws AddressException, MessagingException {

// sets SMTP server properties

Properties properties = new Properties();

properties.put("mail.smtp.host", host);

properties.put("mail.smtp.port", port);

properties.put("mail.smtp.auth", "true");

properties.put("mail.smtp.starttls.enable", "true");

properties.put("mail.user", userName);

properties.put("mail.password", password);

// creates a new session with an authenticator

Authenticator auth = new Authenticator() {

public PasswordAuthentication getPasswordAuthentication() {

return new PasswordAuthentication(userName, password);

}

};

Session session = Session.getInstance(properties, auth);

// creates a new e-mail message

Message msg = new MimeMessage(session);

msg.setFrom(new InternetAddress(userName));

InternetAddress[] toAddresses = { new InternetAddress(toAddress) };

msg.setRecipients(Message.RecipientType.TO, toAddresses);

msg.setSubject(subject);

msg.setSentDate(new Date());

// creates message part

MimeBodyPart messageBodyPart = new MimeBodyPart();

messageBodyPart.setContent(message, "text/html");

// creates multi-part

Multipart multipart = new MimeMultipart();

multipart.addBodyPart(messageBodyPart);

// adds attachments

if (attachFiles != null && attachFiles.length > 0) {

for (String filePath : attachFiles) {

MimeBodyPart attachPart = new MimeBodyPart();

try {

attachPart.attachFile(filePath);

} catch (IOException ex) {

ex.printStackTrace();

}

multipart.addBodyPart(attachPart);

}

}

// sets the multi-part as e-mail's content

msg.setContent(multipart);

// sends the e-mail

Transport.send(msg);

}

/**

* Test sending e-mail with attachments

*/

public static void main(String[] args) {

// SMTP info

String host = "smtp.gmail.com";

String port = "587";

String mailFrom = "your-email-address";

String password = "your-email-password";

// message info

String mailTo = "your-friend-email";

String subject = "New email with attachments";

String message = "I have some attachments for you.";

// attachments

String[] attachFiles = new String[3];

attachFiles[0] = "e:/Test/Picture.png";

attachFiles[1] = "e:/Test/Music.mp3";

attachFiles[2] = "e:/Test/Video.mp4";

try {

sendEmailWithAttachments(host, port, mailFrom, password, mailTo,

subject, message, attachFiles);

System.out.println("Email sent.");

} catch (Exception ex) {

System.out.println("Could not send email.");

ex.printStackTrace();

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值