javamail发送带图片的html信件,图片怎么显示不出来?
liugg 2005-10-12 09:11:46 javamail发送带图片的html信件,图片怎么显示不出来?
用foxmail发送的邮件到163.com,图片就可以显示出来,为什么用javamail就不行呢?邮件也收到了,图片也是附件,就是看到邮件内容的html图片显示不出来。
代码如下:
import java.util.Properties;
import java.util.Date;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
public class Test {
/**
* @param args
*/
public static void main(String[] args)throws Exception{
sendhtml(args);
}
public static void sendhtml(String[] argv) throws Exception{
String to="q123456789@163.com", subject ="null", from ="abcdef@163.com",
cc = null, bcc = null;
String mailhost ="smtp.163.com";
boolean debug = false;
String username ="abcdef";
String password ="123456";
Properties props = System.getProperties();
props.put("mail.smtp.auth","true");
SMTPAuth auth = new SMTPAuth(username,password);
// could use Session.getTransport() and Transport.connect()
// assume we're using SMTP
if (mailhost != null)
props.put("mail.smtp.host", mailhost);
// Get a Session object
Session session = Session.getDefaultInstance(props, auth);
if (debug)
session.setDebug(true);
// construct the message
Message msg = new MimeMessage(session);
if (from != null)
msg.setFrom(new InternetAddress(from));
else
msg.setFrom();
msg.setRecipients(Message.RecipientType.TO,
InternetAddress.parse(to, false));
if (cc != null)
msg.setRecipients(Message.RecipientType.CC,
InternetAddress.parse(cc, false));
if (bcc != null)
msg.setRecipients(Message.RecipientType.BCC,
InternetAddress.parse(bcc, false));
msg.setSubject(subject);
MimeBodyPart mbp1= new MimeBodyPart();
String html ="<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">"+
"<html>"+
"<head><title></title></head>"+
"<body>"+
"<b> see the following jpg : it is a car!</b><br>"+
"<a href=http://www.a.com/a.jsp>hello</a><br>"+
"<IMG SRC=cid:7e2a34e1.jpg width=80% height=60%><br>"+
"<b> end of jpg</b>"+
"</body>"+
"</html>";
mbp1.setContent(html,"text/html");
FileDataSource fds = new FileDataSource("c:/7e2a34e1.jpg");
MimeBodyPart mbp2 = new MimeBodyPart();
mbp2.setFileName(fds.getName());
mbp2.setText("This is a beautiful car !");
mbp2.setDataHandler(new DataHandler(fds));
mbp2.setHeader("Content-ID",fds.getName());
MimeMultipart mp = new MimeMultipart("related");//alternative
mp.addBodyPart(mbp1);
mp.addBodyPart(mbp2);
msg.setContent(mp);
msg.setSentDate(new Date());
Transport.send(msg);
System.out.println(mp.getCount());
System.out.println("\nMail was sent successfully.");
}
}
class SMTPAuth extends javax.mail.Authenticator{
private String user,password;
public SMTPAuth(String u,String p){
user=u;
password=p;
}
public void getuserinfo(String getuser,String getpassword){
user = getuser;
password = getpassword;
}
protected javax.mail.PasswordAuthentication getPasswordAuthentication(){
return new javax.mail.PasswordAuthentication(user,password);
}
}