java發郵件,java發郵件帶附件

本文目錄一覽:

如何使用Java發送qq郵件

方法:

1.前提準備工作:

首先,郵件的發送方要開啟POP3 和SMTP服務–即發送qq郵件的賬號要開啟POP3 和SMTP服務

2.開啟方法:

登陸qq郵箱

3.點擊 設置

4.點擊—-賬戶

5.找到:POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務 —點擊開啟

6.送簡訊 —–點擊確定

7.稍等一會,很得到一個授權碼! –注意:這個一定要記住,一會用到

8.點擊保存修改 —OK 完成

9.java 測試代碼:

package cn.cupcat.test;

import java.util.Properties;

import javax.mail.Message;

import javax.mail.MessagingException;

import javax.mail.Session;

import javax.mail.Transport;

import javax.mail.internet.AddressException;

import javax.mail.internet.InternetAddress;

import javax.mail.internet.MimeMessage;

import javax.mail.internet.MimeMessage.RecipientType;

public class SendmailUtil {

public static void main(String[] args) throws AddressException, MessagingException {

Properties properties = new Properties();

properties.put(“mail.transport.protocol”, “smtp”);// 連接協議

properties.put(“mail.smtp.host”, “smtp.qq.com”);// 主機名

properties.put(“mail.smtp.port”, 465);// 埠號

properties.put(“mail.smtp.auth”, “true”);

properties.put(“mail.smtp.ssl.enable”, “true”);//設置是否使用ssl安全連接 —一般都使用

properties.put(“mail.debug”, “true”);//設置是否顯示debug信息 true 會在控制台顯示相關信息

//得到回話對象

Session session = Session.getInstance(properties);

// 獲取郵件對象

Message message = new MimeMessage(session);

//設置發件人郵箱地址

message.setFrom(new InternetAddress(“123456789@qq.com”));

//設置收件人地址 message.setRecipients( RecipientType.TO, new InternetAddress[] { new InternetAddress(“987654321@qq.com”) });

//設置郵件標題

message.setSubject(“這是第一封Java郵件”);

//設置郵件內容

message.setText(“內容為: 這是第一封java發送來的郵件。”);

//得到郵差對象

Transport transport = session.getTransport();

//連接自己的郵箱賬戶

transport.connect(“123456789@qq.com”, “vvctybgbvvophjcj”);//密碼為剛才得到的授權碼

//發送郵件 transport.sendMessage(message, message.getAllRecipients());

}

}

10.運行就會發出郵件了。。。。

下面是我收到郵件的截圖,當然我把源碼中的郵件地址都是修改了,不是真實的,你們測試的時候,可以修改能你們自己的郵箱。最後,祝你也能成功,如果有什麼問題,可以一起討論!

注意事項

得到的授權碼一定要保存好,程序中要使用

java 發送郵件

要兩個java文件 還有一個mail.jar是不是只能用javamail誰也不敢說

第一個:

public class Constant {

public static final String mailAddress =”用戶名@163.com”;

public static final String mailCount =”用戶名”;

public static final String mailPassword =”密碼”;

public static final String mailServer =”smtp.163.com”;

//pukeyouxintest,

}

第二個:

import java.util.Date;

import java.util.Properties;

import javax.mail.Message;

import javax.mail.Session;

import javax.mail.Transport;

import javax.mail.internet.InternetAddress;

import javax.mail.internet.MimeMessage;

public class SendMail {

/**

* 發送簡單郵件

* @param str_from:發件人地址

* @param str_to:收件人地址

* @param str_title:郵件標題

* @param str_content:郵件正文

*/

public static void send(String str_from,String str_to,String str_title,String str_content) {

// str_content=”a href=”html元素/a”; //for testing send html mail!

try {

//建立郵件會話

Properties props=new Properties(); //用來在一個文件中存儲鍵-值對的,其中鍵和值是用等號分隔的,

//存儲發送郵件伺服器的信息

props.put(“mail.smtp.host”,Constant.mailServer);

//同時通過驗證

props.put(“mail.smtp.auth”,”true”);

//根據屬性新建一個郵件會話

Session s=Session.getInstance(props);

s.setDebug(true); //有他會列印一些調試信息。

//由郵件會話新建一個消息對象

MimeMessage message=new MimeMessage(s);

//設置郵件

InternetAddress from= new InternetAddress(str_from); //pukeyouxintest2@163.com

message.setFrom(from); //設置發件人的地址

//

// //設置收件人,並設置其接收類型為TO

InternetAddress to=new InternetAddress(str_to); //pukeyouxintest3@163.com

message.setRecipient(Message.RecipientType.TO, to);

//設置標題

message.setSubject(str_title); //java學習

//設置信件內容

// message.setText(str_content); //發送文本郵件 //你好嗎?

message.setContent(str_content, “text/html;charset=gbk”); //發送HTML郵件 //b你好/bbrp大家好/p

//設置發信時間

message.setSentDate(new Date());

//存儲郵件信息

message.saveChanges();

//發送郵件

Transport transport=s.getTransport(“smtp”);

//以smtp方式登錄郵箱,第一個參數是發送郵件用的郵件伺服器SMTP地址,第二個參數為用戶名,第三個參數為密碼

transport.connect(Constant.mailServer,Constant.mailCount,Constant.mailPassword);

//發送郵件,其中第二個參數是所有已設好的收件人地址

transport.sendMessage(message,message.getAllRecipients());

transport.close();

} catch (Exception e) {

e.printStackTrace();

}

}

public static void main(String[] args) {

//測試用的,你吧你想寫的內容寫上去就行

send(Constant.mailAddress,”收件人郵箱”,”標題”,”b內容/b”);

}

}

然後把mail.jar導入,就可以了,我用的是163 的,其他的吧相應的伺服器改一下就行了

java如何實現批量發送郵件

1.要想效率發郵件可以用多線程每個線程髮指定批量的郵件

2.要想不被查封為垃圾郵件,這個就有很多地方要注意了

郵件的內容不要含有太多圖片信息,內容盡量簡潔,不要涉及一些淫穢色情的東西。

不要向同一個人發送同樣的郵件。

發郵件時ip最好用代理每發送個50封郵件就換個ip,因為郵件伺服器也會檢查你ip在這麼短時間發了這麼多郵件也會認為你是惡意群發。

最好能加入郵件接收者的白名單或訂閱名單

java實現發送郵件功能

要實現郵件發送功能需要導入包:mail.jar

/*

* Generated by MyEclipse Struts

* Template path: templates/java/JavaClass.vtl

*/

package org.demo.action;

import java.util.Properties;

import javax.mail.Message;

import javax.mail.Session;

import javax.mail.Transport;

import javax.mail.internet.InternetAddress;

import javax.mail.internet.MimeMessage;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;

import org.apache.struts.action.ActionForm;

import org.apache.struts.action.ActionForward;

import org.apache.struts.action.ActionMapping;

import org.demo.form.DemoForm;

public class DemoAction extends Action {

private static final String CONTENT_TYPE = “test/html;charset=GB2312”;

public ActionForward execute(ActionMapping mapping, ActionForm form,

HttpServletRequest request, HttpServletResponse response) {

DemoForm demoForm = (DemoForm) form;

System.out.println(“標題是” + demoForm.getBiaoti());

System.out.println(“內容是” + demoForm.getNeirong());

try {

response.setContentType(CONTENT_TYPE);

String smtphost = “smtp.nj.headware.cn”; // 發送郵件伺服器

String user = “q0000015369”; // 郵件伺服器登錄用戶名

String password = “Queshuwen26”; // 郵件伺服器登錄密碼

String from = “q0000015369@nj.headware.cn”; //

String to = “c0000016205@nj.headware.cn”; // 收件人郵件地址

String subject = demoForm.getBiaoti(); // 郵件標題

String body = demoForm.getNeirong(); // 郵件內容

Properties props = new Properties();

props.put(“mail.smtp.host”, smtphost);

props.put(“mail.smtp.auth”, “true”);

Session ssn = Session.getInstance(props, null);

MimeMessage message = new MimeMessage(ssn);

InternetAddress fromAddress = new InternetAddress(from);

message.setFrom(fromAddress);

InternetAddress toAddress = new InternetAddress(to);

message.addRecipient(Message.RecipientType.TO, toAddress);

message.setSubject(subject);

message.setText(body);

Transport transport = ssn.getTransport(“smtp”);

transport.connect(smtphost, user, password);

transport.sendMessage(message, message

.getRecipients(Message.RecipientType.TO));

// transport.send(message);

transport.close();

return mapping.findForward(“succ”);

} catch (Exception e) {

e.printStackTrace();

return mapping.findForward(“fail”);

}

}

}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/309301.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2025-01-04 19:30
下一篇 2025-01-04 19:30

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java Bean載入過程

    Java Bean載入過程涉及到類載入器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean載入的過程。 一、類載入器 類載入器是Java虛擬機…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字元串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字元串中是否存在多個指定字元: 一、字元串遍歷 字元串是Java編程中非常重要的一種數據類型。要判斷字元串中是否存在多個指定字元…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29
  • Java任務下發回滾系統的設計與實現

    本文將介紹一個Java任務下發回滾系統的設計與實現。該系統可以用於執行複雜的任務,包括可回滾的任務,及時恢復任務失敗前的狀態。系統使用Java語言進行開發,可以支持多種類型的任務。…

    編程 2025-04-29
  • Java 8 Group By 會影響排序嗎?

    是的,Java 8中的Group By會對排序產生影響。本文將從多個方面探討Group By對排序的影響。 一、Group By的概述 Group By是SQL中的一種常見操作,它…

    編程 2025-04-29

發表回復

登錄後才能評論