java加密郵件
㈠ java 發hotmail郵件
接收郵件伺服器(POP3伺服器):pop3.live.com
Incoming Server POP Port: 995接收郵件伺服器的POP埠:995
Incoming Server POP SSL Encryption: Yes (On or Required)接收郵件伺服器的POP SSL加密:是(開或必填)
Outgoing Server (SMTP Server): smtp.live.com發送伺服器(SMTP伺服器):smtp.live.com
Outgoing Server SMTP Port: 25發送伺服器SMTP埠:25
Outgoing Server Authentication: Yes (On – Use POP username and password or Hotmail credentials)發送伺服器身份驗證:是
㈡ java 發郵件問題
"smtp.163..com" 多寫了個"."
日誌都說了>_<
㈢ java里怎麼發驗證碼到郵箱,然後登陸郵箱獲取驗證碼請高手指點,盡量具體些。。。
郵箱驗證分幾種,
最簡單的是直接發送驗證碼:驗證碼隨機產生,可以放到cookie里,限制有效時間就是cookie的存活時間。產生之後和發送郵件一樣直接發送到郵箱。當用戶驗證的時候直接從cookie里拿到驗證碼進行比較。
還有一種是驗證鏈接。在鏈接里要放一個驗證參數,這個參數包括用戶名或用戶id,創建時間,驗證碼。當然都要用某種方法去加密,當用戶點擊這個鏈接的時候,根據相應的方法解密獲得參數。這個可以放到一張動態表裡,表中有驗證碼和對應的用戶名或id。當用戶要求驗證的時候從資料庫中拿到驗證碼,根據鏈接中的時間判斷是否過期。驗證成功後刪除本條數據即可。如果鏈接只能使用一次,那麼在根據用戶名拿到數據之後不管驗證是否成功都要刪除數據
㈣ java mail為啥 分段 base64
MimeBodyPart 這個類中的 setFileName 方法 用到一個 ParameterList 在ParameterList 的 toString 類中找到下面一段:
if (v instanceof MultiValue) {// ....ns = name + i + "*";//...} } else if (v instanceof Value) {/// ... } else {if (value.length() > 60 &&splitLongParameters && encodeParameters) { int seg = 0; name += "*"; /// ....}123456789101112131415
這個類在郵件附件屬於 MultiValue 會把 名字用name + i 隔開 ,在名字大於 60個字元的時候也會主動截斷,這也就是 javamail 中 附件的命名規則,名字太長會被截斷~~!
中文在base64 加密後,超過60個字元那是妥妥的有可能。這種截斷文件名的模式在某些客戶端,比如閃電郵中,並不能很好的支持。
參考資料來源:網路貼吧
㈤ javaweb 中用通過發送郵件的方法找回密碼 怎麼做
郵件的鏈接中應該有一個識別碼,識別碼應該是加密過的,包含用戶名等你需要知道的信息。有一個找回的方法。判斷識別碼是否是你加密的內容,是就鏈接到重置密碼,或者查他的密碼。
㈥ JAVA編寫的用smtp模擬郵件客戶端,但是身份驗證500語法錯誤
首先你已經在郵件客戶端裡面設置了smtp伺服器的地址,並且你也填寫了你的郵箱賬戶和密碼,客戶端軟體在發送你所編輯好的郵件時,先和smtp進行驗證,之後才可以通過smtp伺服器來發送郵件的,這個過程並不是你通過網頁的方式登陸郵箱那樣可以被你看到,基本上驗證就是一眨眼就完成了。你可以嘗試一下,在你的客戶端裡面把密碼故意輸錯掉,然後試試看能不能發郵件就知道了,答案是肯定發不了,客戶端會提示你「賬號或者密碼錯誤,無法登陸伺服器」之類的提示。
㈦ java如何實現批量發送郵件
1.要想效率發郵件可以用多線程每個線程發指定批量的郵件
2.要想不被查封為垃圾郵件,這個就有很多地方要注意了
郵件的內容不要含有太多圖片信息,內容盡量簡潔,不要涉及一些淫穢色情的東西。
不要向同一個人發送同樣的郵件。
發郵件時ip最好用代理每發送個50封郵件就換個ip,因為郵件伺服器也會檢查你ip在這么短時間發了這么多郵件也會認為你是惡意群發。
最好能加入郵件接收者的白名單或訂閱名單
㈧ 怎樣用java實現郵件的發送
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.Socket;
import java.net.SocketException;
import java.rmi.UnknownHostException;
import java.util.StringTokenizer;
import sun.misc.BASE64Encoder;
public class Sender {
//private boolean debug = true;
BASE64Encoder encode=new BASE64Encoder();//用於加密後發送用戶名和密碼
static int dk=25;
private Socket socket;
public Sender(String server, int port) throws UnknownHostException,
IOException {
try {
socket = new Socket(server, dk);
} catch (SocketException e) {
System.out.println(e.getMessage());
} catch (Exception e) {
e.printStackTrace();
} finally {
//System.out.println("已經建立連接!");
}
}
// 注冊到郵件伺服器
public void helo(String server, BufferedReader in, BufferedWriter out)
throws IOException {
int result;
result = getResult(in);
// 連接上郵件服務後,伺服器給出220應答
if (result != 220) {
throw new IOException("連接伺服器失敗");
}
result = sendServer("HELO " + server, in, out);
// HELO命令成功後返回250
if (result != 250) {
throw new IOException("注冊郵件伺服器失敗!");
}
}
private int sendServer(String str, BufferedReader in, BufferedWriter out)
throws IOException {
out.write(str);
out.newLine();
out.flush();
/*
if (debug) {
System.out.println("已發送命令:" + str);
}
*/
return getResult(in);
}
public int getResult(BufferedReader in) {
String line = "";
try {
line = in.readLine();
/*
if (debug) {
System.out.println("伺服器返回狀態:" + line);
}
*/
} catch (Exception e) {
e.printStackTrace();
}
// 從伺服器返回消息中讀出狀態碼,將其轉換成整數返回
StringTokenizer st = new StringTokenizer(line, " ");
return Integer.parseInt(st.nextToken());
}
public void authLogin(MailMessage message, BufferedReader in,
BufferedWriter out) throws IOException {
int result;
result = sendServer("AUTH LOGIN", in, out);
if (result != 334) {
throw new IOException("用戶驗證失敗!");
}
result=sendServer(encode.encode(message.getUser().getBytes()),in,out);
//System.out.println("用戶名: "+encode.encode(message.getUser().getBytes()));
if (result != 334) {
throw new IOException("用戶名錯誤!");
}
result=sendServer(encode.encode(message.getPassword().getBytes()),in,out);
//result=sendServer(message.getPassword(),in,out);
//System.out.println("密碼: "+encode.encode(message.getPassword().getBytes()));
if (result != 235) {
throw new IOException("驗證失敗!");
}
}
// 開始發送消息,郵件源地址
public void mailfrom(String source, BufferedReader in, BufferedWriter out)
throws IOException {
int result;
result = sendServer("MAIL FROM:<" + source + ">", in, out);
if (result != 250) {
throw new IOException("指定源地址錯誤");
}
}
// 設置郵件收件人
public void rcpt(String touchman, BufferedReader in, BufferedWriter out)
throws IOException {
int result;
result = sendServer("RCPT TO:<" + touchman + ">", in, out);
if (result != 250) {
throw new IOException("指定目的地址錯誤!");
}
}
// 郵件體
public void data(String from, String to, String subject, String content,
BufferedReader in, BufferedWriter out) throws IOException {
int result;
result = sendServer("DATA", in, out);
// 輸入DATA回車後,若收到354應答後,繼續輸入郵件內容
if (result != 354) {
throw new IOException("不能發送數據");
}
out.write("From: " + from);
out.newLine();
out.write("To: " + to);
out.newLine();
out.write("Subject: " + subject);
out.newLine();
out.newLine();
out.write(content);
out.newLine();
// 句號加回車結束郵件內容輸入
result = sendServer(".", in, out);
//System.out.println(result);
if (result != 250) {
throw new IOException("發送數據錯誤");
}
}
// 退出
public void quit(BufferedReader in, BufferedWriter out) throws IOException {
int result;
result = sendServer("QUIT", in, out);
if (result != 221) {
throw new IOException("未能正確退出");
}
}
// 發送郵件主程序
public boolean sendMail(MailMessage message, String server) {
try {
BufferedReader in = new BufferedReader(new InputStreamReader(
socket.getInputStream()));
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(
socket.getOutputStream()));
helo(server, in, out);// HELO命令
authLogin(message, in, out);// AUTH LOGIN命令
mailfrom(message.getFrom(), in, out);// MAIL FROM
rcpt(message.getTo(), in, out);// RCPT
data(message.getDatafrom(), message.getDatato(),
message.getSubject(), message.getContent(), in, out);// DATA
quit(in, out);// QUIT
} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;
}
}
再寫一個MailMessage.java,set/get方法即可。
㈨ 【Java】有java收取郵件,但是對方的郵件伺服器,埠995有ssl加密,有做過這方面的大神啊
http://blog.csdn.net/chenshanhao2008/article/details/5695072
這裡面有SSL方式收取郵件的例子,你試試,
㈩ java發送郵件時候,代碼中的密碼怎麼不使用明文
發送時候密碼串加密
接收的時候讓對方解密 就不是明文了