天天看點

java 發送郵件+附件

--------------------------------絕對路徑file為附件

@Test
	public void testSendEmail(){
	       JavaMailSenderImpl senderImpl = (JavaMailSenderImpl)SpringContextUtil.getBean("senderImpl");


	        // 建立郵件消息,發送簡單郵件和html郵件的差別
	        MimeMessage mailMessage = senderImpl.createMimeMessage();
	        // 為防止亂碼,添加編碼集設定
	        MimeMessageHelper messageHelper;
			try {
				messageHelper = new MimeMessageHelper(mailMessage,true,"UTF-8");
				 messageHelper.setTo("[email protected]");
		        messageHelper.setFrom("[email protected]");
		        messageHelper.setSubject("小帥帥使用者");
		        messageHelper.setText("這是發送附件與内容", true);;
		      //添加保密協定pdf附件 
		        FileSystemResource file = new FileSystemResource("D:/java/space/src/main/webapp/download/secrecy_agreement.pdf");
		        messageHelper.addAttachment("保密協定", file);
			} catch (MessagingException e) {
				e.printStackTrace();
			}

	        // 發送郵件
	        senderImpl.send(mailMessage);

	}
       
=======================以儲存臨時檔案發送附件===========      
@Test
	public void testSendEmail(){
	        JavaMailSenderImpl senderImpl = (JavaMailSenderImpl)SpringContextUtil.getBean("senderImpl");


	        // 建立郵件消息,發送簡單郵件和html郵件的差別
	        MimeMessage mailMessage = senderImpl.createMimeMessage();
	        // 為防止亂碼,添加編碼集設定
	        MimeMessageHelper messageHelper;
			try {
				messageHelper = new MimeMessageHelper(mailMessage,true,"UTF-8");
				 messageHelper.setTo("[email protected]");
		        messageHelper.setFrom("[email protected]");
		        messageHelper.setSubject("小帥帥使用者");
		        messageHelper.setText("這是發送附件與内容", true);
		      //添加保密協定pdf附件   http://oss-cn-shanghai.aliyuncs.com/template/se_agreement.pdf
		        
		       String endpoint = "http://oss-chai.aliyuncs.com";
		       // accessKey請登入https://console.aliyun.com/#/檢視
	           String accessKeyId = "LTAIH6";
	           String accessKeySecret = "92Mrzy0i3ThoK";
	           String bucketName = "evd";
		        
	           // 建立OSSClient執行個體
	           OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
	           File tempFile = File.createTempFile("result", ".pdf");
	           // 下載下傳object到檔案
	           ossClient.getObject(new GetObjectRequest(bucketName, "template/secrecy_agreement.pdf"), tempFile);
		        messageHelper.addAttachment("新能源汽車資料平台保密協定", tempFile);
		        // 發送郵件
		        senderImpl.send(mailMessage);
			} catch(MailException e){
				e.printStackTrace();
			}catch (Exception e) {
				e.printStackTrace();
			}


	}
      
--------------spring-------------
<bean id="senderImpl" class="org.springframework.mail.javamail.JavaMailSenderImpl">
		<property name="host" value="${mail.smtp.host}" />
		<property name="port" value="${mail.smtp.port}" />
		<property name="username" value="${mail.smtp.username}" />
		<property name="password" value="${mail.smtp.password}" />
		<property name="javaMailProperties">
			<props>
				<prop key="mail.smtp.timeout">${mail.smtp.timeout}</prop>
				<prop key="mail.smtp.auth">${mail.smtp.auth}</prop>
				<prop key="mail.smtp.starttls.enable">${mail.smtp.starttls.enable}</prop>
				<prop key="mail.smtp.socketFactory.port">${mail.smtp.port}</prop>
				<prop key="mail.smtp.socketFactory.class">javax.net.ssl.SSLSocketFactory</prop>
				<prop key="mail.smtp.socketFactory.fallback">false</prop>
			</props>
		</property>
	</bean>