javamail收发邮件(带附件,正文带图)

上传人:简****9 文档编号:102544109 上传时间:2019-10-03 格式:DOC 页数:18 大小:229.04KB
返回 下载 相关 举报
javamail收发邮件(带附件,正文带图)_第1页
第1页 / 共18页
javamail收发邮件(带附件,正文带图)_第2页
第2页 / 共18页
javamail收发邮件(带附件,正文带图)_第3页
第3页 / 共18页
javamail收发邮件(带附件,正文带图)_第4页
第4页 / 共18页
javamail收发邮件(带附件,正文带图)_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《javamail收发邮件(带附件,正文带图)》由会员分享,可在线阅读,更多相关《javamail收发邮件(带附件,正文带图)(18页珍藏版)》请在金锄头文库上搜索。

1、1. 邮件1.1 邮件组成部分如果是新邮件就获取,并解析它;邮件是由邮件头和邮件体组成,在邮件头中主要包含了收件人、发件人、主题等等基础信息。而邮件体中就包括了邮件的正文和附件等内容信息。下图就是pop3协议下,邮件的大致内容。1.2 发送邮件(带附件、正文带图片)QQ邮箱为例: 需要QQ账号和QQ登录第三方客户端时,密码框的“授权码”(相当于密码)授权码如下获取:代码如下:public class JavaMailboxAttachment private MimeMessage message; private Session session; private String mailHos

2、t = ; private String mailAuth = ; private String mailPort = ; private String sender_username = ;private String sender_password = ;/定义一个Properties 用于存放信息 private Properties properties = new Properties(); /-发信箱-public JavaMailboxAttachment(String email_type) try properties.put(mail.smtp.host,); /发送邮件服

3、务器 /端口号,QQ邮箱给出了两个端口,但是另一个我一直使用不了,所以就给出这一个587 properties.put(mail.smtp.port, 587); /发送邮件端口号 properties.put(mail.smtp.auth, true); / 此处填写你的账号 properties.put(mail.user, ); / 此处的密码就是前面说的16位STMP授权码 properties.put(mail.password, xxxxxxxxxxxxxxxx); this.mailHost = properties.getProperty(mail.smtp.host); th

4、is.mailAuth = properties.getProperty(mail.smtp.auth); this.mailPort = properties.getProperty(mail.smtp.port); this.sender_username = properties.getProperty(mail.user); this.sender_password = properties.getProperty(mail.password); catch (Exception e) e.printStackTrace(); / 构建授权信息,用于进行SMTP进行身份验证 Authe

5、nticator authenticator = new Authenticator() protected PasswordAuthentication getPasswordAuthentication() / 用户名、密码 String userName = properties.getProperty(mail.user); String password = properties.getProperty(mail.password); return new PasswordAuthentication(userName, password); ; session = Session.

6、getInstance(properties,authenticator); /用户验证 message = new MimeMessage(session); /将验证成功的session信息,创建一个message 对象。 /* * 发送邮件 * param subject * 邮件主题 * param sendHtml * 邮件内容 * param receiveUser * 收件人地址 * param file * 附件 */ public int doSendHtmlEmail(String subject, String sendHtml, String receiveUser,

7、Vector file) try / 发件人 InternetAddress from = new InternetAddress(sender_username); message.setFrom(from); / 收件人 InternetAddress to = new InternetAddress(receiveUser); message.setRecipient(Message.RecipientType.TO, to); / 邮件主题 message.setSubject(subject); / 向multipart对象中添加邮件的各个部分内容,包括文本内容带图片和附件 Body

8、Part contentPart = new MimeBodyPart(); Multipart multipart = new MimeMultipart(related); /用于来关联文本内容中图片。 / 添加邮件正文 String imgaeString=Qh_method.randNumID(qunhong_); /生成一个随机数,大家可以自己写 multipart.addBodyPart(contentPart);/利用正则找出图片中的src改成cid final Pattern imgRegExp = Ppile( +srcs*=s*(+)* ); Map inlineImage

9、 = new HashMap(); final Matcher matcher = imgRegExp.matcher( sendHtml ); int i = 0; while ( matcher.find() ) String src = matcher.group(); if ( sendHtml.indexOf( src ) != -1 ) String srcToken = src=; int x = src.indexOf( srcToken ); int y = src.indexOf( , x + srcToken.length() ); String srcText = sr

10、c.substring( x + srcToken.length(), y ); String Sub = srcText.substring(srcText.indexOf(.),srcText.length(); String cid = imgaeString + i; String newSrc = src.replace( srcText, cid: + cid +Sub); inlineImage.put( cid, srcText.split( , )0 ); sendHtml = sendHtml.replace( src, newSrc ); i+; /这里说明一下为什么要将

11、正文里的图片转为cid,个人理解:附件和正文里的图片都归于附件传输,设置cid用于识别附件是否为正文底下图片。/修改后正文内容放置contentPart contentPart.setContent(sendHtml, text/html;charset=UTF-8); /获取项目路径,来获得正文底下的图片,上传至服务器。String path = this.getClass().getProtectionDomain().getCodeSource().getLocation().getFile(); int indexOf = path.indexOf(xxxxxxxxx); path=path.substring(0,indexOf); for (int j = 0; j inlineImage.size(); j+) MimeBodyPart jpgBody = new MimeBodyPart(); FileDataSource fds = new FileDataSource(path+inlineImage.get(imgaeString+j); jpgBody.setDataHandler(new DataHandler(fds); jpgBody.setContentID(imgaeString+j); /必须与cid一样

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号