如何用javamail定时发送邮件

上传人:无*** 文档编号:194559596 上传时间:2023-03-13 格式:DOCX 页数:52 大小:57.30KB
收藏 版权申诉 举报 下载
如何用javamail定时发送邮件_第1页
第1页 / 共52页
如何用javamail定时发送邮件_第2页
第2页 / 共52页
如何用javamail定时发送邮件_第3页
第3页 / 共52页
资源描述:

《如何用javamail定时发送邮件》由会员分享,可在线阅读,更多相关《如何用javamail定时发送邮件(52页珍藏版)》请在装配图网上搜索。

1、如何用javamail定时发送邮件如何用javamail定时发送邮件 例如:我想在3天后的中午12:00发送给别人邮件 还有就是每天的中午12点给别人发送邮件,而且这些个邮件地址是从一个jsp传来的 例如今天给a发,当执行过jsp后,jsp输入的是b,以后就给b发 而且jsp传过来的邮件地址数目是多个的,每天需要给多人在固定一时间内发邮件 定时触发器 有许多开源项目 Timer + 多线程 我在这里使用的Java计时器框架是由Java开发人员Tom White构建的一个简单通用的计划框架,以用于执行任意复杂的计划任务,他使我们实现灵活的计划策略成为可能。Java计时器框架的本身在这里不作过多的

2、介绍,详细信息在IBM developerWorks中国网站。 我们主要讨论如何利用Java计时器框架在Solaris平台来实现邮件的定时发送、JavaMail发送邮件的实现以及在Solaris平台上如何以后台方式运行整个邮件定时发送的应用。 下载本文的源代码,参考具体实现。 1.1 形成schedule.jar包 schedule.jar包中的目录结构如下: 我们将数据库的连接、日志、邮件和计划框架的通用类形成一个与具体应用要求无关的schedule.jar包。利用javac将编译生成的目标class文件存在当前目录的classes文件夹下,然后通过jar -cvf schedule.jar

3、 ./*命令生成schedule.jar包。 1.1.1 Oracle数据库连接的建立 位于db目录下,通过thin方式建立与Oracle的数据库连接,具体的实现参见J2EE应用中与Oracle数据库的连接一文。 1.1.2 日志 以后台方式定时运行的应用应特别注意日志的功能,因为只有通过分析详细的日志信息才能准确掌握应用的执行情况。在logs目录下为Logs.java文件,代码如下: package com.j2ee.logs; import java.io.*; import java.util.*; import java.text.SimpleDateFormat; public cl

4、ass Logs private String logType=; private String server=/schedule/logs/server.log; private String task=/schedule/implements/nohup.out; private SimpleDateFormat dateFormat = new SimpleDateFormat(); /* * param logType server task */ public Logs(String logType) this.logType=logType; public void print(S

5、tring msg) try String path=; if (logType.equals(server) path=server; if (logType.equals(task) path=task; / BufferedWriter out = new BufferedWriter(new String str=dateFormat.format(new Date); if (logType.equals(task) out.newLine; out.write(str,0,str.length); out.write(msg,0,msg.length); out.newLine;

6、out.close; catch(Exception e) System.out.println(Logs.print:+e.getMessage); ; FileWriter(path,true); 通过类中的构造器,可以生成两个日志文件:server.log和nohup.out。server.log用来记录计时器框架本身定时调度的日志信息,通过它来判断定时调度服务每天是否正常运行;nohup.out用来记录在具体应用中的调试信息,例如:在应用中通过System.out.println输出的信息将记录在nohup.out文件中。 1.1.3 邮件 位于mail目录下,包括以下一些文件: 1)

7、Debug.java 发送邮件时的调试信息 2)EMailContents.java 邮件的正文,为了使邮件接受者对收到的邮件有一个好的视觉效果,可以先写一个统一的HTML邮件模板,在模板中填充相应的内容。EmailContents类完成这一功能。效果如下: 3)Mailer.java 发送邮件的主方法。它调用MailThread类中的方法创建一个发送邮件的线程。 4)MailThread.java 发送邮件线程类。它调用MailHelper中的方法来完成发送邮件的工作。 5)MailHelper.java 发送邮件的实现类。在类的createAndSendMail方法中包括了发送邮件一系列必

8、须的过程,它可以完成一些邮件的正文、附件、抄送、回执等功能。在邮件的实现中用到了两个jar包:mail.jar和activation.jar。 1.1.4 计划框架 计划框架的详细内容可以通过本文前面提供的连接去详细了解,本文该部分的代码也出自IBM网站。 1.2 邮件定时发送的实现 这部分主要用到前面schedule.jar中的类来实现与具体应用要求相适应的应用。在implements目录下有三个类: 1)ScheduleTask.java 包含一个main方法,在本例中每天计划3点开始执行计划好的任务。 2)ScheduleThread.java 线程类,在该类的run方法中,可以添加不同

9、类型的计划定时执行的任务类来完成不同的定时执行的任务,在本例中调用了Mails类中的sendMail方法来定时发送邮件。 3)Mails.java 按照一定的业务逻辑规则实现邮件的发送。 1.3 邮件定时发送应用的运行 包括应用的启动和停止,在Solaris上我们可以编写两个脚本:start和stop来完成该工作。 1.3.1 Start脚本 Start脚本内容如下: echo * CLASSPATH=.:/schedule/implements/jar/schedule.jar: /schedule/implements/jar/classes12.zip: /schedule/implem

10、ents/jar/mail.jar:/schedule/implements/jar/activation.jar export CLASSPATH echo set schedule running environment success. nohup java com.j2ee.implement.ScheduleTask & echo start schedule task success. echo view logs: echo /schedule/implements/nohup.out echo /schedule/logs/server.log date /schedule/l

11、ogs/server.log echo 计划框架成功启动 /schedule/logs/server.log echo * 这里有两个关键点:CLASSPATH的设置和nohup运行方式。在CLASSPATH中必须提供用到的所有jar包,多个jar包用:分隔;&表示以后台方式运行,nohup使应用的运行不依赖于当前的会话,如果不以nohup方式的话,即 java com.j2ee.implement.ScheduleTask &,当你关闭你当前的会话时,应用将终止运行。可以使用ps -ef | grep java来查看应用运行的进程号。 当然也可以通过手工交互的方式完成上述步骤来运行应用。 1

12、.3.2 Stop脚本 Stop脚本内容如下: echo * ps -e | grep java ps.out kill -9 cut -c 2-6 ps.out rm ps.out date /schedule/logs/server.log echo 计划框架成功停止 /schedule/logs/server.log echo stop schedule task success. echo * 该脚本中主要通过 ps -e | grep java命令将输出信息重定向到ps.out文件中,在从文件中获得进程号,然后将它kill掉。同样也可以通过手工的方式将它kill。 一般的问题在SUN

13、中国的技术社区都能找的到的 建议你去看看. 这篇是切过来的 你可以去SUN中国技术社区下载具体实例 使用JSP开发WebMail系统 电子邮件是Internet上使用最广泛的服务之一,传统的Email应用模式基于C/S结构,即用户使用客户端的邮件收发工具与提供邮件服务的服务器通信,在使用客户端邮件工具之前,用户要进行一些必要的设置,如指定邮件服务器的主机地址和通信端口等,这些工作对刚开始上网的用户会有一定的困难,如果把E-mail和Web结合在一起,即通过Web编程和适当的系统设置,使用户仅仅以访问Web的方式就可以得到和使用完整的邮件服务,这样将极大地方便上网用户,这种系统称为WebMail

14、。WebMail是目前Internet上最受欢迎的服务之一,也是很多网站必备功能之一。另外WebMail同样也适用于企业或校园网的应用。 通常在后台服务器的搭建和设置完成后实现WebMail系统,而前台的开发工作主要是开发工具与后台数据库和邮件服务器的交互问题。在Linux平台上运行的各种服务器软件稳定性和可靠性一直很好,而且选择跨平台的Java开发工具使系统更稳定,具有更高的伸缩性。 JSP性能 尽管JSP提供强大的功能是建立在Servlet之上,但JSP的性能和Servlet相差无几。JSP首先要编译成Servlet,这只会增加少量的代码,仅需编译一次且可以预编译,这就消除了运行时花费不必

15、要的负担。JSP与Servlet性能上的差异仅仅表现在返回的数据是二进制的。这是因为JSP返回时用的是PrintWriter,而Servlet可以应用于速度更快的OutputStream。 JSP自定义的标签库可以封装大量的、复杂的Java操作在一个Form里面,这些预先定义好的标签可以很容易的被那些没有Java知识的人调用。因此,JSP自定义的标签库可以有效地实现Java程序员和Web设计人员工作的划分。然而,在页面上应用的每一个标签,Web容器都必须创建一个新的标签句柄对象或从标签缓冲中提取它。因此,过多的应用自定义的标签将会带来不必要的资源浪费。 BodyTags是一种特殊的定制标签,可

16、以提取在它之间封装的内容或者替换那些内容。BodyTags之间的内容一般会备份在内存中。由于BodyTags之间能够嵌套和重复,因此,在程序中应用了多级的BodyTags会占用大量宝贵的内存和系统资源。 实现WebMail的主要功能 该系统提供了获取、阅读、书写、转发、回复、打印、删除及用户管理的功能。考虑到系统的跨平台性,采用Java及相关技术产品为开发工具,特别是采用JSP作为服务程序,这样对客户端也没有其它要求,同时系统的性能在高负荷下得到进一步提高。整个WebMail系统全部采用纯Java代码,服务器端每响应一个服务请求启动一个线程,而不像CGI那样启动一个进程。这样能够节省系统资源,

17、提高系统性能。 实现主要代码 获取用户输入的信息 对于用户输入内容获取功能是通过getParameter方法来实现的,对于输入的文本内容,通过如下代码就能在服务器端获取,程序代码如下: String username=request.getParameter(login); String password=request.getParameter(password); Session session2=Session.getInstance(System.getProperties ,null); Store store=session2.getStore(pop3); 根据用户输入的信息来连

18、接服务器,程序代码如下: try store.connect(host,username %, password); catch(javax.mail.AuthenticationFailedException e) content=用户名与密码不匹配; 接收邮件代码段 根据获取用户输入的信息来连接服务器,代码为: store.connect(,-1,request.getParameter(username) %,request .getParameter(password); 获取服务器端的信息,代码如下: Folder folder = store.getFolder(INBOX); F

19、older.open (Folder.READ_WRITE); Message message=folder.getMessages; FetchProfile fp=new FetchProfile; fp.add(FetchProfile.Item.ENVELOPE); fp.add(FetchProfile.Item.FLAGS); fp.add(X-Mailer); folder.fetch(message,fp); 根据服务器上信息的不同格式,使用不同的方式来读取: String contentbody=; Object o=messagej.getContent; 若其Type为t

20、ex/plain就可直接读出,代码如下: if (messagej.isMimeType(text/plain) contentbody=(String) ; StringBuffer buf=new StringBuffer(contentbody.length 6); char ch= ; for(int p=0;pcontentbody.length;p )/若遇到换行就转为 ch=contentbody.charAt(p); if(ch=n)buf.append(); else buf.append(ch); contentbody=buf.toString; 如果信息类型为text/

21、html,不同的信息类型处理的方式稍有不同,由于篇幅有限不再一一说明。 else if (messagej.isMimeType(text/html) contentbody=(String)o ; 发送邮件代码段 根据用户输入的内容,获取邮件头信息代码如下: String host = ; String from = request.getParameter(from); String to = request.getParameter(to); String subject = request.getParameter(subject); String content = request.

22、getParameter(content); Properties props = System.getProperties; /设置邮件服务 props.put(mail.smtp.host, host); Session session2 =Session.getInstance(props, null); 设置邮件头信息代码如下: MimeMessage message =new MimeMessage(session2); message.setFrom(new InternetAddress(from); message.addRecipient(Message.RecipientT

23、ype.TO,new InternetAddress(to); message.setSubject(subject); message.setSentDate(new Date); / create the message part MimeBodyPart messageBodyPart =new MimeBodyPart; 设置邮件内容,构建程序段如下: messageBodyPart.setText(content); Multipart multipart = new MimeMultipart; multipart.addBodyPart(messageBodyPart); 用户在

24、发送邮件时常常带有附件,就是将浏览器客户端用户本地的文件传送到POP客户端,实现代码如下: for (int i=0;imySmartUpload.getFiles.getCount;i ) com.jspsmart.upload.File myFile = mySmartUpload.getFiles.getFile(i); if (!myFile.isMissing) myFile.saveAs(/upload/ myFile.getFileName); count ; 在上传附件的同时,对上传文件的数量进行统计,并通过out.println(上传了 count 个文件)将其在屏幕上显示出

25、来。 在发送的信件中如果有附件,使用如下代码进行发送: for(int i=0;request.getParameter(file i)!=null;i ) messageBodyPart = new MimeBodyPart; File file=new File(/home/mengyu/ROOT/upload/,request.getParameter(file i); DataSource source =new FileDataSource(file); messageBodyPart.setDataHandler(new DataHandler(source); messageBo

26、dyPart.setFileName(request.getParameter(file i); multipart.addBodyPart(messageBodyPart); / Put parts in message message.setContent(multipart); 调用Transport的send方法,将构造好MIME Message对象发送出去,代码如下: Transport.send(message); 删除电子邮件代码段 在通过Web界面使用电子邮件过程中,经常要对接收到垃圾邮件或已查看过的邮件进行删除,这也是电子邮件中必不可少的一个功能,所以我们设计了Web界面中删

27、除电子邮件的相应功能,主要程序代码段如下: Folder folder=store.getFolder(INBOX); folder.open(Folder.READ_WRITE); Message message=folder.getMessages; String msg=request.getParameterValues(msg); for(int i=0,n=msg.length;in;i ) messageDouble.valueOf(msgi).intValue.setFlag(Flags.Flag.DELETED,true); folder.close(true); 用户管理

28、在使用系统运行的过程中,通过管理界面添加用户,删除不必要的用户,修改用户的密码,这是程序运行过程中必要的模块,代码如下: /添加用户 Runtime.getRuntime.exec(/home/vpopmail/bin/vadduser request.getParameter(user name) request.getParameter(passwd); /删除用户 Runtime.getRuntime.exec(/home/vpopmail/bin/vdeluser request.getParameter(user name) ); /修改用户密码 Runtime.getRuntime

29、.exec(/home/vpopmail/bin/vpasswd request.getParameter(usern ame) request.getParameter(passwd); 总结 Java简化了企业解决方案的开发、部署和管理等相关的复杂问题,它是面向对象的编程语言,同时也是具有平台独立性、高性能的服务器端编程语言。它提供的标准系统框架和服务适合团体开发,可控制性好,与其它资源的集成性好。采用Java为编程工具开发高性能、高可用性的WebMail服务器具有非常重要的意义。 javamail邮件服务发送总结 首先我们得得到属性文件! Properties props = new P

30、roperties; 然后将你要SMTP的服务器添加带此:bean.getServer props.put(mail.smtp.host, bean.getServer); props.put(mail.transport.protocol, smtp); / props.put(mail.smtp.connectiontimeout, 10000); 这个注释是延时 / props.put(mail.smtp.timeout, 10000); props.put(mail.smtp.auth, true);如果你的smtp有验证则需要把后面写为true!一般163 sohu 等都需要验证!

31、MyAuthenticator auth = new MyAuthenticator(bean.getUser, bean.getPassword); 一个验证类在下面会贴出来 sendMailSession = Session.getDefaultInstance(props, (Authenticator) auth); 然后我们得到session将配置文件与验证类写进去 sendMailSession.setDebug(true);/需要调试可以打 MimeMessage msg = new MimeMessage(sendMailSession); InternetAddress fr

32、omAddress = new InternetAddress(bean.getFrom); msg.setFrom(fromAddress); 发送人地址 / msg.setRecipient(Message.RecipientType.TO, new InternetAddress(bean.getTo); 收件人地址 if(bean.getToEmail!=null) for(int i=0;ibean.getToEmail.length;i+) msg.addRecipients(Message.RecipientType.TO, bean.getToEmaili); 多个可以这样写

33、/ Get two Object mp = new MimeMultipart; BodyPart bp = new MimeBodyPart; / Set Subject msg.setSubject(bean.getSubject, UTF-8); 标题 / Set Context bean.setContext(new String(bean.getContext.getBytes(UTF-8),UTF-8); bp.setContent(+bean.getContext,text/html;charset=utf-8); 内容 mp.addBodyPart(bp); 将 标题与内容添加

34、 /Set Ps if(bean.getFile!=) 如果有附件则运行下面代码 bp = null; 先清空他 bp = new MimeBodyPart; FileDataSource fileds = new FileDataSource(bean.getFile); bp.setDataHandler(new DataHandler(fileds); bp.setFileName(fileds.getName); 将文件set 进去 mp.addBodyPart(bp); 添加文件 msg.setSentDate(new java.util.Date); set时间 msg.setCo

35、ntent(mp); 将所有信息内容set msg.saveChanges;保存 transport = sendMailSession.getTransport(smtp); System.out.println(Sending Mail.); transport.connect(bean.getServer, bean.getUser, bean.getPassword); transport.sendMessage(msg, msg.getAllRecipients); 发送所有 transport.close; System.out.println(OK.); 呵呵。最近研究邮件发送系

36、统。总算搞出来了。 现在总结总结。其实也不算总结。给点注释就OK了 呵呵。 看上面注释 下面是验证内: package org.softeem.mail; import javax.mail.Authenticator; import javax.mail.PasswordAuthentication; public class MyAuthenticator extends Authenticator private String username; private String userpass; public MyAuthenticator(String un, String up) s

37、uper; username = un; userpass = up; public PasswordAuthentication getPasswordAuthentication return new PasswordAuthentication(username, userpass); 今天在研究javamail发信的过程中,出现了一些小问题,现总结如下,以免后来者走些不必要的弯路,先把完整的能够正常运行的代码示例粘贴如下: 发邮件源代码: package com.hyq.test; import java.util.Properties; import javax.mail.*; im

38、port javax.mail.internet.*; public class MailExample public static void main (String args) throws Exception String host = ; /发件人使用发邮件的电子信箱服务器 String from = 你自己的电子信箱; /发邮件的出发地 String to = 收件人信箱; /发邮件的目的地 / Get system properties Properties props = System.getProperties; / Setup mail server props.put(ma

39、il.smtp.host, host); / Get session props.put(mail.smtp.auth, true); /这样才能通过验证 MyAuthenticator myauth = new MyAuthenticator(你自己的电子信箱, 你自己的信箱密码); Session session = Session.getDefaultInstance(props, myauth); / session.setDebug(true); / Define message MimeMessage message = new MimeMessage(session); / Se

40、t the from address message.setFrom(new InternetAddress(from); / Set the to address message.addRecipient(Message.RecipientType.TO, new InternetAddress(to); / Set the subject message.setSubject(测试程序!); / Set the content message.setText(这是用java写的发送电子邮件的测试程序!); message.saveChanges; Transport.send(messag

41、e); 校验发信人权限的方法 package com.hyq.test; import javax.mail.PasswordAuthentication; class MyAuthenticator extends javax.mail.Authenticator private String strUser; private String strPwd; public MyAuthenticator(String user, String password) this.strUser = user; this.strPwd = password; protected PasswordAut

42、hentication getPasswordAuthentication return new PasswordAuthentication(strUser, strPwd); 注意:上面的事例仅为使用163信箱时发送电子邮件的方法,因为使用的host为:,如源代码中:String host = ; /发件人使用发邮件的电子信箱服务器,如果使用其它的电子邮件发送,就必须在其邮件服务器上查找相应的电子邮件服务器,例如搜狐就要使用,具体情况具体对待,都可以从所使用的邮件服务器上获得的。如果没有使用host ,也就是说,没有进行props.put(mail.smtp.host, host);设置,

43、那么就会抛javax.mail.MessagingException: Could not connect to SMTP host: localhost, port: 25;的异常。当然了,如果你没有正确配置,这个异常仍然会被抛出的。 有些邮件服务系统是不需要验证发件人的授权的,所以可以很简单的使用 Session session = Session.getDefaultInstance(props, null); 而不必使用 props.put(mail.smtp.auth, true); MyAuthenticator myauth = new MyAuthenticator(你自己的电

44、子信箱, 你自己的信箱密码); Session session = Session.getDefaultInstance(props, myauth); 就可以发送电子邮件了,这个多为一些企事业单位的内部电子信箱系统。 但是对于很多门户网站上的电邮系统,如:163,sohu,yahoo等等,如果仍然简单的这样使用就会抛 com.sun.mail.smtp.SMTPSendFailedException: 553 authentication is required,smtp8,wKjADxuAyCAfmnZE8BwtIA=.32705S2 at com.sun.mail.smtp.SMTPTr

45、ansport.issueSendCommand(SMTPTransport.java:1388) at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:959) at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:583) at javax.mail.Transport.send0(Transport.java:169) at javax.mail.Transport.send(Transport.java:98) 这样的异常,要求你必须进行

46、授权校验,它的目的就是阻止他人任意乱发邮件,也算是为了减少垃圾邮件的出现吧。这时候,我们就要使用 props.put(mail.smtp.auth, true); MyAuthenticator myauth = new MyAuthenticator(你自己的电子信箱, 你自己的信箱密码); Session session = Session.getDefaultInstance(props, myauth); 这里还有一个特别注意的事情:在你使用Session.getDefaultInstance时,一定要将 props.put(mail.smtp.auth, true); 置为true,

47、它默认的是false,如果你没有做这一步,虽然你使用了Session.getDefaultInstance(props, myauth);,你自己也确实 MyAuthenticator myauth = new MyAuthenticator(你自己的电子信箱, 你自己的信箱密码);但是它仍然会抛出 com.sun.mail.smtp.SMTPSendFailedException: 553 authentication is required,smtp8,wKjADxJA2SBrm3ZEFv0gIA=.40815S2 at com.sun.mail.smtp.SMTPTransport.is

48、sueSendCommand(SMTPTransport.java:1388) at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:959) at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:583) at javax.mail.Transport.send0(Transport.java:169) at javax.mail.Transport.send(Transport.java:98) 这样的异常。我就在这一步费了好长时间,后来才发

49、现了这个问题,很是郁闷。不过还好,总算解决了。 其实上面的做法只是比较简单的一种,也有很多其它的写法,如: Properties props = System.getProperties;可以使用 Properties props = new Properties;来代替。 Transport.send(message);可以使用下面的代码来代替 String username = 你的电子信箱用户名; String password = 你的电子信箱密码; message.saveChanges; / implicit with send Transport transport = sess

50、ion.getTransport(smtp); transport.connect(, username, password); transport.sendMessage(message, message.getAllRecipients); transport.close; 这种方法在同时发送多封电子邮件时比较有用。 还有一些具体的相关概念,可以查看相关的官方文档,在我查询资料时,发现了一篇文章写得相当仔细,可以加以参考: 另附上使用mons.mail进行发电子邮件的示例: import mons.mail.SimpleEmail; import mons.mail.*; public c

51、lass TestCommon public TestCommon public static void main(String args) SimpleEmail email = new SimpleEmail; email.setHostName();/设置使用发电子邮件的邮件服务器 try email.addTo(收件人信箱); email.setAuthentication(发件人信箱,发件人信箱密码); email.setFrom(发件人信箱); email.setSubject(Test mons.mail message); email.setMsg(This is a simp

52、le test of commons-email); email.send; catch (EmailException ex) ex.printStackTrace; javamail读取完整的邮件 Javamail API虽然功能封装的比较完整,但是要写一个能正确显示复杂邮件的程序还有很多逻辑和细节要处理。下面是我最近做一个webmail时整理的Servlet,基本上可以正确的读取text,HTML,HTML中显示图片及附件。在本servlet中也简单处理了常见的中文问题,包括主题、附件、HTML图片中文、email Address中文。总体感觉有两个难点:1、附件和网页图片的抓取,需要定位数节点nodeid,光用partid是不行的;2、中文分两种情况Base64和客户端服务器端编码不一致。本程序中实现了3种displayPart的方法,具体情况不同结合使用效率更高。本程序还有一个未处理的地方就是我在做nodeid的时候最多算10个。当然还有其他问题欢迎指正,来出是为了给后来的初学者作个参考例子,少走弯路。 import java.io.IOException; impor

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!