1. 程式人生 > >傳送郵件的例子,備份

傳送郵件的例子,備份

package net.uni.ap.email;

import java.io.File;
import java.util.Date;
import java.util.Properties;

import javax.activation.DataHandler;
import javax.activation.FileDataSource;
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 net.uni.in1.BaseExcelConstants;

public class EmailUtil {

	/**
	 * @param mailAddress 接收郵件地址
	 * @param title  標題
	 * @param textType  內容類別"html"或者正常文字
	 * @param text   內容,根據textType判斷
	 * @return
	 * @方法說明 傳送郵件方法
	 * @date 2012-5-21
	 */
	public static String sendEmail(EmailObject emailObj){
		//建立郵件會話
		Properties props=new Properties();
		//儲存傳送郵件伺服器的資訊
		props.put("mail.smtp.host",EmailConStant.MAIL_SERVER);
		//同時通過驗證
		props.put("mail.smtp.auth","true");
		//根據屬性新建一個郵件會話
		Session s=Session.getInstance(props);
		s.setDebug(true); //有他會列印一些除錯資訊。

		//由郵件會話新建一個訊息物件
		MimeMessage message=new MimeMessage(s);
		//設定郵件
		try {
			InternetAddress from = new InternetAddress(EmailConStant.MAIL_COUNT);
			message.setFrom(from);


			InternetAddress[] tos = new InternetAddress[emailObj.getMailAddresses().length];
			// //設定收件人,並設定其接收型別為TO
			for (int i = 0;i< emailObj.getMailAddresses().length;i++){
				tos[i] = new InternetAddress(emailObj.getMailAddresses()[i]);
			}
			message.setRecipients(Message.RecipientType.TO, tos);
			message.setSubject(emailObj.getTitle());
			//設定發信時間
			message.setSentDate(new Date());
			//儲存郵件資訊
			message.saveChanges();

			//傳送郵件
			Transport transport=s.getTransport("smtp");
			//以smtp方式登入郵箱,第一個引數是傳送郵件用的郵件伺服器SMTP地址,第二個引數為使用者名稱,第三個引數為密碼
			transport.connect(EmailConStant.MAIL_SERVER,EmailConStant.MAIL_COUNT,EmailConStant.MAIL_PASSWORD);
			Multipart mp = new MimeMultipart();
			MimeBodyPart bmp = new MimeBodyPart();

			if (emailObj.getTextType()!=null&&emailObj.getTextType().equals("html"))
				bmp.setContent(emailObj.getText(),"text/html;charset=gbk");
			else
				bmp.setText(emailObj.getText());
			mp.addBodyPart(bmp);
			
			
			//傳送附件
			if(emailObj.getFiles()!=null&&emailObj.getFiles().length>0){
				for(File fs:emailObj.getFiles()){
					if(fs.exists()){
	                    bmp=new MimeBodyPart();
						FileDataSource fds=new FileDataSource(BaseExcelConstants.UPLOADPATH+"/"+fs.getName());
						bmp.setDataHandler(new DataHandler(fds)); 
						String newName =fs.getName().substring(0, fs.getName().lastIndexOf("-"))+fs.getName().substring(fs.getName().lastIndexOf("."));
						//名字需要先轉為ISO 再轉為GB2312 否則郵件內會顯示亂碼  這個很重要。。
						newName =new String(newName.getBytes("gb2312"),"ISO8859-1");
						bmp.setFileName(newName);
						mp.addBodyPart(bmp);
					}
				}
			}
			emailObj.setFiles(null);
			message.setContent(mp);
			message.saveChanges();
			//傳送郵件,其中第二個引數是所有已設好的收件人地址
			transport.sendMessage(message,message.getAllRecipients());
			transport.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

	public static void main(String[] args) {
		String[] strs = {"
[email protected]
"}; EmailObject obj = new EmailObject(); obj.setMailAddresses(strs); obj.setTitle("測試"); obj.setTextType("text"); obj.setText("哈哈哈"); sendEmail(obj); } }
實體類
package net.uni.ap.email;

import java.io.File;

public class EmailObject {
	String[] mailAddresses;//郵件地址
	String title;	//標題
	String textType;	//文字類別。"html" 為html 其他為普通文字  作廢了,現在都用html
	String text;		//文字內容
	File[] files;	//附件列表


	public String[] getMailAddresses() {
		return mailAddresses;
	}
	public void setMailAddresses(String[] mailAddresses) {
		this.mailAddresses = mailAddresses;
	}
	public String getTitle() {
		return title;
	}
	public void setTitle(String title) {
		this.title = title;
	}
	public String getTextType() {
		return textType;
	}
	public void setTextType(String textType) {
		this.textType = textType;
	}
	public String getText() {
		return text;
	}
	public void setText(String text) {
		this.text = text;
	}
	public File[] getFiles() {
		return files;
	}
	public void setFiles(File[] files) {
		this.files = files;
	}


}


相關推薦

傳送郵件例子備份

package net.uni.ap.email; import java.io.File; import java.util.Date; import java.util.Properties; import javax.activation.DataHandler;

play1.2.x簡單的傳送郵件例子

對於PlayFramework框架不瞭解的朋友可以參照此部落格進行配置,部落格地址: http://blog.csdn.net/wangran51/article/details/9357997。然後就是在controllers包中新建EmailAction類,總體來說play框架出來的時間已經不

python 自動傳送郵件報表正文插入圖片帶附件

# -*- coding: utf-8 -*- """ Created on Wed Aug 15 17:44:33 2018 @author: cp """ from email.mime.text import MIMEText from email.mime.mul

傳送郵件功能以及郵箱報錯501535!!!

前言 大多開發專案中都會有著傳送郵件的需求,例如定時傳送郵件,驗證郵件等等。 此文介紹傳送郵件功能 前期準備 mail.jar包 建立一個class檔案 class檔案內容(模板): public class Mail { public static

SAP 傳送郵件例子(內部)

REPORT ZSEND . TABLES: KNA1. * data for send function  DATA DOC_DATA LIKE SODOCCHGI1.  DATA OBJECT_ID LIKE SOODK.  DATA OBJCONT   LIKE

C# 使用 SmtpClient.SendAsync 方法傳送郵件失敗總是返回 Cancelled

問題: 呼叫 SmtpClient.SendAsync,在 SendCompleted 的回撥函式裡面總是獲取到 e.Cancelled 為 true。 後來測試了一下,相同的程式碼,只是把 Smt

python3傳送郵件02(簡單例子帶附件)

#!/usr/bin/env python# -*- coding:UTF-8 -*- import osimport smtplibfrom email.header import Headerfrom email.mime.text import MIMETextfrom email.mime.mult

Jenkins任務失敗傳送郵件通知

1、進入系統管理->系統設定,然後進行下面設定: 2、配置管理員郵件賬號,需要和後面的郵件傳送者一致。否則可能會發送不成功 3、配置基礎的郵件傳送的配置 4、配置郵件擴充套件配置--用來自定義郵件格式等,這裡需要注意一點:定義的郵件伺服器等配置要和上面的郵件普通配置一致 5、在每

C#實現.Net對郵件進行DKIM簽名和驗證支援附件傳送郵件簽名後直接投遞到對方伺服器(無需己方郵件伺服器)

專案地址 github.com/xiangyuecn/… 主要支援 對郵件進行DKIM簽名,支援帶附件 對整個郵件內容(.eml檔案)的DKIM簽名進行驗證 對MailMessage、SmtpClient進行了一次封裝,傳送郵件簡單易用,進行DKIM簽名後直接投遞到對方伺服器(無需己方郵件

Oracle 儲存過程中傳送郵件並支援使用者驗證 中文標題和內容

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

阿里雲ECS遮蔽25埠官方建議使用465 SSL埠傳送郵件

阿里雲ECS  VPC網路,搭建了zabbix,想通過三方郵件系統傳送郵件,本機開虛擬機器測試發郵件一切正常,到阿里ECS的時候郵件各種發不出去,到處找原因,最後度娘告訴了我真想,原來阿里把25埠遮蔽了。 嘗試解封,呵呵...繼續找度娘 谷哥,說是可以繞開25埠,用465埠,步驟如下(先不要操作,

springboot傳送郵件的實現例子

springboot是集大成者,對於傳送郵件的功能也不例外。而且往往是原來的功能實現更簡單,方便。更符合Facade Pattern。 下面就是springboot傳送郵件的實現例子,程式碼已封裝好,按照提示的步驟配置好就可以直接用了。當然如果你是新搭的專案,需要引入springboot的mail包

郵件傳送超大附件上傳下載特別慢怎麼解決?

目前,已有不少郵箱如QQ郵箱、網易郵箱等支援超大附件,可以傳送2G或3G大小的檔案。但是諸多郵箱傳送超大附件普遍存在以下問題: 首先,郵件傳送大檔案對檔案大小有限制,超過上限的超大附件無法傳送;其次,超大附件上傳、下載的速度有限,而且速度也不穩定;再次,即便上傳成功之後,如果對方的郵箱接收附件的大小也會有限

傳送郵件工具類及操作(例子

1.所需要工具類  1.1ExcelUtil工具     package com.finlabtech.pinjamancepatanalyse.util; import org.apache.poi.hssf.util

python 使用SMTP傳送郵件[HTML格式帶附件]

今天百度學習瞭如何在python中使用SMTP傳送郵件,包括帶HTML格式和附件。 基本套路就是定義一個MIMEText(不帶附件)或者MIMEMultipart(可帶多個附件),然後再連線、登入郵件伺服器併發送即可。(傳送HTML格式的郵件與純文字訊息的郵件不

[python]socket傳送http請求非阻塞io的一個例子

#通過非阻塞io實現http請求 import socket from urllib.parse import urlparse #使用非阻塞io完成http請求 def get_url(url): #通過socket請求html url

伺服器實時通知客戶端方案伺服器傳送/推送事件方案(2)server event典型例子可以用作股票、新聞資訊推送

server event是html5規範的一部分,它相比websocket使用起來更簡單,對伺服器的改動也最小 前端html部分 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"&

csdn左側個人欄目美化css英文顏色大全跑馬燈效果點選轉到qq聯絡點選轉到傳送郵件

跑馬燈效果: 總的來說就是這個標籤在起作用 點選轉到qq聯絡: 注意替換href中的32248827 點選轉到傳送郵件: 注意替換href中的32248827 css英文顏色大全: red

[Python]python3使用smtplib傳送郵件帶xlsx附件

#encoding=utf8 import smtplib from email.mime.multipart import MIMEMultipart from email.header import Header from email.mime.text import M

java中傳送郵件如何設定發件人名稱、暱稱

msg.setFrom (new InternetAddress ("[email protected]", "這裡是需要的暱稱", "UTF-8")); msg.setSubject (subject); msg.setText (content); msg.ad