带文件上传的简单邮件发送案例,这个案例还得导入mail.jar包,这个可以去百度上download一个.
其中要注意的是:
①:name-->只是个名字,不要带上@什么的,
②:smtp的地址:QQ邮箱-->smtp.qq.com
163邮箱-->smtp.163.com
126邮箱-->smtp.126.com
yeah邮箱-->smtp.yeah.net
即:smtpServer参数
package com.email;
import javax.mail.*;
import javax.mail.internet.*;
import java.util.*;
import javax.activation.*;
public class BaseMail {
private int count=1;
Transport transport=null;
/** * 发送邮件
* @param smtp服务器 例:smtp.exmail.qq.com
* @param 用户名
* @param 密码
* @param 发件人邮箱地址
* @param 收信人邮箱地址
* @param 邮件标题
* @param 邮件正文
* @param 附件地址
*/
public boolean sendMail(String smtpServer, String name, String password, String meMail, String toMail, String mailTitle, String mailText String fileName ) {
long begin=System.currentTimeMillis();
Properties props = System.getProperties(); // 设置smtp服务器
props.setProperty("mail.smtp.host", smtpServer); // 现在的大部分smpt都需要验证了
props.put("mail.smtp.auth", "true");
Session s = Session.getInstance(props); // 为了查看运行时的信息
// 由邮件会话新建一个消息对象
MimeMessage message = new MimeMessage(s);
try {
// 发件人
InternetAddress from = new InternetAddress(meMail);
message.setFrom(from);
// 收件人
InternetAddress to = new InternetAddress(toMail);
message.setRecipient(Message.RecipientType.TO, to);
// 邮件标题
message.setSubject(mailTitle);
// String content = "测试内容";
// 邮件内容,也可以使纯文本"text/plain"
// message.setContent(content, "text/html;charset=GBK");
// 下面代码是发送附件
// String fileName = "d://hello.txt";
MimeBodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setText(mailText);
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);
messageBodyPart = new MimeBodyPart();
//上传文件
if (null != fileName) {
DataSource source = new FileDataSource(fileName);
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName(fileName.substring(fileName.lastIndexOf("/")+1));
multipart.addBodyPart(messageBodyPart);
}
message.setContent(multipart);
message.saveChanges(); transport = s.getTransport("smtp"); // smtp验证,就是你用来发邮件的邮箱用户名密码
transport.connect(smtpServer, name, password); // 发送
transport.sendMessage(message, message.getAllRecipients());
return true;
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
transport.close();
} catch (MessagingException e) {
e.printStackTrace();
}
}
return false;
}
public static void main(String[] args) {
BaseMail mail = new BaseMail();
mail.sendMail("smtp.yeah.net", "12345", "password", "12345@yeah.net", "接收人的邮件地址", "标题", "内容","文件地址"); }
}