1. 程式人生 > >java使用javax.mail包傳送電子郵件:設定賬號、密碼、主題、文字、附件

java使用javax.mail包傳送電子郵件:設定賬號、密碼、主題、文字、附件

全棧工程師開發手冊 (作者:欒鵬)

java使用javax.mail包傳送電子郵件。這個例項可傳送多附件。

這裡使用163郵箱進行測試。可以設定賬號、密碼、主題、文字內容、附件

測試程式碼

public static void main(String[] args){
      Mail sendmail = new Mail();
      sendmail.setHost("smtp.163.com");
      sendmail.setUserName("[email protected]");
      sendmail.setPassWord
("aaaaaaaaa"); sendmail.setTo("[email protected]"); sendmail.setFrom("[email protected]"); sendmail.setSubject("你好,這是測試!"); sendmail.setContent("你好這是一個帶多附件的測試!"); //Mail sendmail = new Mail("[email protected]","[email protected]","smtp.163.com","aaaaaaaaa"
,"aaaaaaaaa","你好","胃,你好嗎?"); sendmail.attachfile("D:\\test.jpg"); sendmail.attachfile("D:\\test.mp4"); sendmail.sendMail(); }

郵件傳送類的實現

package com.lp.app.net;

import java.util.*;
import java.io.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;


String to = ""
;//收件人 String from = "";//發件人 String host = "";//smtp主機 String username = "" ; String password = "" ; String filename = "";//附件檔名 String subject = "";//郵件主題 String content = "";//郵件正文 Vector file = new Vector();//附件檔案集合 public Mail(){ } //構造器,提供直接的引數傳入 public Mail(String to,String from,String smtpServer,String username,String password,String subject,String content){ this.to = to; this.from = from; this.host = smtpServer; this.username = username; this.password = password; this.subject = subject; this.content = content; } //設定郵件伺服器地址 public void setHost(String host){ this.host = host; } //設定登入伺服器校驗密碼 public void setPassWord(String pwd){ this.password = pwd; } //設定登入伺服器校驗使用者 public void setUserName(String usn){ this.username = usn; } //設定郵件傳送目的郵箱 public void setTo(String to){ this.to = to; } //設定郵件傳送源郵箱 public void setFrom(String from){ this.from = from; } //設定郵件主題 public void setSubject(String subject){ this.subject = subject; } //設定郵件內容 public void setContent(String content){ this.content = content; } //把主題轉換為中文 public String transferChinese(String strText){ try{ strText = MimeUtility.encodeText(new String(strText.getBytes(), "GB2312"), "GB2312", "B"); }catch(Exception e){ e.printStackTrace(); } return strText; } //往附件組合中新增附件 public void attachfile(String fname){ file.addElement(fname); } //傳送郵件 public boolean sendMail(){ //構造mail session Properties props = System.getProperties(); props.put("mail.smtp.host",host); props.put("mail.smtp.auth","true"); Session session=Session.getDefaultInstance(props, new Authenticator(){ public PasswordAuthentication getPasswordAuthentication(){ return new PasswordAuthentication(username,password); } }); try { //構造MimeMessage 並設定基本的值 MimeMessage msg = new MimeMessage(session); msg.setFrom(new InternetAddress(from)); InternetAddress[] address={new InternetAddress(to)}; msg.setRecipients(Message.RecipientType.TO,address); subject = transferChinese(subject); msg.setSubject(subject); //構造Multipart Multipart mp = new MimeMultipart(); //向Multipart新增正文 MimeBodyPart mbpContent = new MimeBodyPart(); mbpContent.setText(content); //向MimeMessage新增(Multipart代表正文) mp.addBodyPart(mbpContent); //向Multipart新增附件 Enumeration efile=file.elements(); while(efile.hasMoreElements()){ MimeBodyPart mbpFile = new MimeBodyPart(); filename=efile.nextElement().toString(); FileDataSource fds = new FileDataSource(filename); mbpFile.setDataHandler(new DataHandler(fds)); mbpFile.setFileName(fds.getName()); //向MimeMessage新增(Multipart代表附件) mp.addBodyPart(mbpFile); } file.removeAllElements(); //向Multipart新增MimeMessage msg.setContent(mp); msg.setSentDate(new Date()); //傳送郵件 Transport.send(msg); } catch (MessagingException mex) { mex.printStackTrace(); Exception ex = null; if ((ex=mex.getNextException())!=null){ ex.printStackTrace(); } return false; } return true; } }

本文只試驗了163郵件,讀者可以按下面的主機地址,試驗其他郵箱。但並不是每種郵箱都能成功。

gmail(google.com)
POP3伺服器地址:pop.gmail.com(SSL啟用 埠:995)
SMTP伺服器地址:smtp.gmail.com(SSL啟用 埠:587)

21cn.com:
POP3伺服器地址:pop.21cn.com(埠:110)
SMTP伺服器地址:smtp.21cn.com(埠:25)

sina.com:
POP3伺服器地址:pop3.sina.com.cn(埠:110)
SMTP伺服器地址:smtp.sina.com.cn(埠:25)

tom.com:
POP3伺服器地址:pop.tom.com(埠:110)
SMTP伺服器地址:smtp.tom.com(埠:25)

163.com:
POP3伺服器地址:pop.163.com(埠:110)
SMTP伺服器地址:smtp.163.com(埠:25)

263.net:
POP3伺服器地址:pop3.263.net(埠:110)
SMTP伺服器地址:smtp.263.net(埠:25)

yahoo.com:
POP3伺服器地址:pop.mail.yahoo.com
SMTP伺服器地址:smtp.mail.yahoo.com

263.net.cn:
POP3伺服器地址:pop.263.net.cn(埠:110)
SMTP伺服器地址:smtp.263.net.cn(埠:25)

Foxmail:
POP3伺服器地址:POP.foxmail.com(埠:110)
SMTP伺服器地址:SMTP.foxmail.com(埠:25)

sinaVIP
POP3伺服器:pop3.vip.sina.com (埠:110)
SMTP伺服器:smtp.vip.sina.com (埠:25)

sohu.com:
POP3伺服器地址:pop3.sohu.com(埠:110)
SMTP伺服器地址:smtp.sohu.com(埠:25)

etang.com:
POP3伺服器地址:pop.etang.com
SMTP伺服器地址:smtp.etang.com

x263.net:
POP3伺服器地址:pop.x263.net(埠:110)
SMTP伺服器地址:smtp.x263.net(埠:25)

yahoo.com.cn:
POP3伺服器地址:pop.mail.yahoo.com.cn(埠:995)
SMTP伺服器地址:smtp.mail.yahoo.com.cn(埠:587)
雅虎郵箱POP3的SSL不啟用埠為110,POP3的SSL啟用埠995;SMTP的SSL不啟用埠為25,SMTP的SSL啟用埠為465

QQ郵箱 QQ企業郵箱
POP3伺服器地址:pop.qq.com(埠:110) POP3伺服器地址:pop.exmail.qq.com (SSL啟用 埠:995)
SMTP伺服器地址:smtp.qq.com (埠:25) SMTP伺服器地址:smtp.exmail.qq.com(SSL啟用 埠:587/465)
SMTP伺服器需要身份驗證

126郵箱 HotMail
POP3伺服器地址:pop.126.com(埠:110) POP3伺服器地址:pop.live.com (埠:995)
SMTP伺服器地址:smtp.126.com(埠:25) SMTP伺服器地址:smtp.live.com (埠:587)

china.com: 139郵箱
POP3伺服器地址:pop.china.com(埠:110) POP3伺服器地址:POP.139.com(埠:110)
SMTP伺服器地址:smtp.china.com(埠:25) SMTP伺服器地址:SMTP.139.com(埠:25)

相關推薦

java使用javax.mail傳送電子郵件設定賬號密碼主題文字附件

全棧工程師開發手冊 (作者:欒鵬) java使用javax.mail包傳送電子郵件。這個例項可傳送多附件。 這裡使用163郵箱進行測試。可以設定賬號、密碼、主題、文字內容、附件 測試程式碼 public static void mai

Python自動化運維筆記(六)使用smtplib模組傳送電子郵件

執行環境:Python3.6,Windwos10 RS1,Pycharm 參考書籍—《Python自動化運維--技術與最佳實踐》劉天斯著 模組介紹 我們在監測系統狀態傳送警報資

linux CentOS6的mail/sendmail命令傳送電子郵件實現

我經常使用linux也是因為工作都需要在linux centos6中操作,下面來介紹我在linux 中使用mail命令實現郵件傳送的方法過程。  程式碼如下 複製程式碼 # -s後面是郵件的主題,主題後面是目標郵件地址[[email protected] ~]# mail -s “Lucky m

使用flask-mail發送電子郵件時出現的問題

style windows 出現 ask cat 代理 pan ica 賬號 考慮到gmail設置代理啥的比較麻煩,用幾乎已經不用的163郵箱測試,結果遇到各種問題: 533 authentication is required: 為保證安全性,考慮將賬號和密碼添加進環境變

Android實現快速傳送電子郵件

最近有朋友有需求是通過apk傳送郵件,我心想這怎麼可以實現?然後就研究了一番,最後得出結論是可行的! 確實可以自己的手機上定義主題和內容或者附件,然後傳送給對應的郵箱!詳細步驟傾聽我一一道來 我們以A郵箱傳送郵件給B郵箱為例: 1 開啟A郵箱的POP3服務 每個郵箱都有POP3服

呼叫Mailgun API傳送電子郵件一例

Mailgun提供了免費的郵件傳送服務,適合拿來做通知提醒一類的服務。免費版預設支援每天傳送多達300封郵件,最多可以發10,000封。 註冊方法:訪問 https://www.mailgun.com/email-api , 點Sign Up Free 輸入基本資訊,包括要接收郵

net類庫中傳送電子郵件的方法總結

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

PHP 傳送電子郵件

PHP 傳送電子郵件 PHP 允許您從指令碼直接傳送電子郵件。 。。。。。。。。。。。。。 PHP mail() 函式 PHP mail() 函式用於從指令碼中傳送電子郵件。 語法:mail(to,subject,message,headers,parameters) to 必需。規定 email

tp5傳送電子郵件

一、開啟郵箱的SMTP服務 QQ郵箱設定方式: 點選設定: 點選賬戶 在最下面,有個開啟 點開啟會彈出個窗,上面有密碼,記下密碼 163郵箱設定方式: 其他郵箱都一樣,獲取授權碼就行 二、下載類庫檔案 https://gi

使用Java傳送電子郵件

所需jar包 <dependency> <groupId>javax.mail</groupId> <artifactId>javax.mail-api</artifactId

.NET 傳送電子郵件

static void Main(string[] args) { ///先引入 using System.Net.Mail; ///傳送郵件 using (MailMessage mailMessage = ne

手機接收電子郵件如何設定

隨著社會發展,單純的電腦Web端和客戶端登陸郵箱,已經不足於滿足廣大郵箱使用者的使用需求。現在“手機在手,天下我有”顯得越來越重要。那麼,手機怎麼收發郵件,手機接收電子郵件如何設定呢?下面由我來為大家分享~ 以TOM VIP 郵箱,@163.net為例 第一步:微信搜尋公眾號“隨心郵”點選關注 第二

使用SMTP傳送電子郵件

描述SMTP的基本操作,有如下常見的情景。假如Alice想給Bob傳送一封簡單的ASCII報文: 1)Alice啟動她的郵件代理伺服器並提供Bob的郵件地址(例如:***@163.com),撰寫郵件,通過使用者代理髮送該郵件。 2)Alice的使用者代理把報文傳送給Ali

vb.net 傳送電子郵件方法 無需改動 直接Ctrl C V

Public Function Emilsend(ByVal arrp As Array) As Boolean Dim tConsultname As String = G_objService.SB_MyTrim(arrp(0)) Di

使用Python傳送電子郵件

SMTP傳送郵件: 我這裡使用的qq郵箱伺服器,所以執行之前應先把qq郵箱中的相應服務開啟; 1.傳送文字郵件 #傳送文字郵件 import smtplib from email.mime.text import MIMEText from email.header

Servlet 傳送電子郵件

Servlet 傳送電子郵件 使用 Servlet 傳送一封電子郵件是很簡單的,但首先您必須在您的計算機上安裝 JavaMail API 和 Java Activation Framework)JAF)。 您可以從 Java 標準網站下載最新版本

PHP傳送電子郵件

今天學習了PHP的mail函式,並且利用它傳送傳送一些簡單點的郵件,下面 開始吧: 1、首先,應該配置自己的PHP檔案(也就是php.ini檔案)然後需要安裝sendmail 2、下載後將其解壓到任意一個目錄下面,我的是和php相關檔案放在一起了(自己建立一個資料夾sen

用flask開發個人部落格(24)—— flask中使用Flask_Mail傳送電子郵件

        flask中使用Flask-Mail提供對電子郵件的支援,下面將分步驟測試flask中傳送電子郵件的功能: 1 配置SMTP伺服器的資訊         我們需要藉助flask程式例項app的config屬性來配置電子郵件的SMTP伺服器資訊,其中主要的配置

如何用WinCC傳送電子郵件

  HwEMail是HwLib(慧蘭博)技術團隊開發的一款用於WinCC或者.Net的電子郵件控制元件。它可以嵌入到WinCC畫面中,通過簡單的設定即可將重要報警訊息或者事件傳送到指定的電子郵箱裡。HwEMail屬於HwLib訊息套件(目前包含微信、釘釘、MQTT、簡訊和電子郵件五種)中的一種。HwEMail

Ruby 傳送電子郵件

使用Ruby傳送電子郵件,無論是自動生成的還是人工輸入的都可以。首先你需要把郵件的資訊轉換成一個單一的陣列,包含了郵件的內容和附件等資訊。需要引用這幾個類庫如RubyMail、Tmail、ActionMailer。因為ActionMailer依賴rails,所以用它來寫。 示