代码如下:
package demo;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import sun.misc.BASE64Encoder;

public class MailSender ...{

public static void main(String[] args) ...{
MailSender sender = new MailSender();
sender.setHost("smtp.sina.com.cn");
sender.setFromAddr("yyyyyyyyyy@sina.com");
sender.setToAddr("xxxxxx@163.com");
sender.setUsername("wwwwwwww");
sender.setPassword("ssssssss");
sender.setTitle("关于提高效率的几点想法");
sender.setAttachPath("C:/singleUser.sql");
sender.setAttachName("singleUser.sql");

try ...{
sender.sendMail();
} catch (Exception e) ...{
e.printStackTrace();
}
}

public void sendMail() throws Exception...{
Properties props = new Properties();
props.put("mail.smtp.host", getHost());
props.put("mail.smtp.auth", "true");
Session session = Session.getDefaultInstance(props);
session.setDebug(true);
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(getFromAddr()));
message.addRecipient(Message.RecipientType.TO,new InternetAddress(getToAddr()));
message.setSubject(getTitle());
Multipart multipart = new MimeMultipart();
BodyPart contentPart = new MimeBodyPart();
contentPart.setText("邮件的具体内容在此");
multipart. addBodyPart(contentPart);
if(getAttachPath() != null && getAttachName() != null)...{
BodyPart attachmentPart= new MimeBodyPart();
DataSource source = new FileDataSource(getAttachPath());
attachmentPart.setDataHandler(new DataHandler(source));
BASE64Encoder enc = new BASE64Encoder();
attachmentPart.setFileName("=?GBK?B?"+enc.encode(getAttachName().getBytes())+"?=");
multipart.addBodyPart(attachmentPart);
}
message.setContent(multipart);
message.saveChanges();
Transport transport = session.getTransport("smtp");
transport.connect(host, getUsername(), getPassword());
transport.sendMessage(message, message.getAllRecipients());
transport.close();
}
private String host = null;
private String fromAddr = null;
private String toAddr = null;
private String username = null;
private String password = null;
private String title = null;
private String attachPath = null;
private String attachName = null;

public String getHost() ...{
return host;
}

public void setHost(String host) ...{
this.host = host;
}

public String getFromAddr() ...{
return fromAddr;
}

public void setFromAddr(String fromAddr) ...{
this.fromAddr = fromAddr;
}

public String getToAddr() ...{
return toAddr;
}

public void setToAddr(String toAddr) ...{
this.toAddr = toAddr;
}

public String getUsername() ...{
return username;
}

public void setUsername(String username) ...{
this.username = username;
}

public String getPassword() ...{
return password;
}

public void setPassword(String password) ...{
this.password = password;
}

public String getTitle() ...{
return title;
}

public void setTitle(String title) ...{
this.title = title;
}

public String getAttachPath() ...{
return attachPath;
}

public void setAttachPath(String attachPath) ...{
this.attachPath = attachPath;
}

public String getAttachName() ...{
return attachName;
}

public void setAttachName(String attachName) ...{
this.attachName = attachName;
}
}
本文提供了一个使用Java发送带附件电子邮件的示例代码。通过配置SMTP服务器、发件人、收件人等信息,可以实现从Java应用程序中发送包含文本内容及文件附件的邮件。
465

被折叠的 条评论
为什么被折叠?



