導航:首頁 > 編程語言 > java郵箱可以偽造嗎

java郵箱可以偽造嗎

發布時間:2025-02-22 19:49:27

㈠ 用java寫的郵件發送程序

界面自己寫一下就可以了,把相關的參數傳進去就可以了。 這個是我以前寫的。用的javamail。 有main方法,測試一下自己的郵件,應該沒問題的。希望可以幫到你。注意導入你需要的javamail.jar的包 -------------------------------------------------------------- package com.fourpane.mail; import java.util.Properties; import javax.mail.Address; import javax.mail.Flags; import javax.mail.Folder; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.NoSuchProviderException; import javax.mail.Session; import javax.mail.Store; import javax.mail.Transport; import javax.mail.internet.AddressException; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; public class TestMail { public static void main(String[] args) { //TestMail.sendMail(); //TestMail.receiveMail(); TestMail.deleteMail(); } /** * send mail */ public static void sendMail() { String host = "smtp.sina.com";//郵件伺服器 String from = "[email protected]";//發件人地址 String to = "[email protected]";//接受地址(必須支持pop3協議) String userName = "xingui5624";//發件人郵件名稱 String pwd = "******";//發件人郵件密碼 Properties props = new Properties(); props.put("mail.smtp.host", host); props.put("mail.smtp.auth", "true"); Session session = Session.getDefaultInstance(props); session.setDebug(true); MimeMessage msg = new MimeMessage(session); try { msg.setFrom(new InternetAddress(from)); msg.addRecipient(Message.RecipientType.TO, new InternetAddress(to));//發送 msg.setSubject("我的測試...........");//郵件主題 msg.setText("測試內容。。。。。。。");//郵件內容 msg.saveChanges(); Transport transport = session.getTransport("smtp"); transport.connect(host, userName, pwd);//郵件伺服器驗證 transport.sendMessage(msg, msg.getRecipients(Message.RecipientType.TO)); System.out.println("send ok..........................."); } catch (AddressException e) { e.printStackTrace(); } catch (MessagingException e) { e.printStackTrace(); } } /** * receive mail */ public static void receiveMail() { String host = "pop3.sina.com"; String userName = "xingui5624"; String password = "******"; Properties props = new Properties(); Session session = Session.getDefaultInstance(props); session.setDebug(true); try { System.out.println("receive..............................."); Store store = session.getStore("pop3"); store.connect(host, userName,passWord);//驗證 Folder folder = store.getFolder("INBOX");//取得收件文件夾 folder.open(Folder.READ_WRITE); Message msg[] = folder.getMessages(); System.out.println("郵件個數:" + msg.length); for(int i=0; i<msg.length; i++) { Message message = msg[i]; Address address[] = message.getFrom(); StringBuffer from = new StringBuffer(); /** * 此for循環是我項目測試用的 */ for(int j=0; j<address.length; j++) { if (j > 0) from.append(";"); from.append(address[j].toString()); } System.out.println(message.getMessageNumber()); System.out.println("來自:" + from.toString()); System.out.println("大小:" + message.getSize()); System.out.println("主題:" + message.getSubject()); System.out.println("時間::" + message.getSentDate()); System.out.println("==================================================="); } folder.close(true);//設置關閉 store.close(); System.out.println("receive over............................"); } catch (NoSuchProviderException e) { e.printStackTrace(); } catch (MessagingException e) { e.printStackTrace(); } } /** * delete mail */ public static void deleteMail() { String host = "pop3.sina.com"; String userName = "xingui5624"; String passWord = "******"; Properties props = new Properties(); //Properties props = System.getProperties();這種方法創建 Porperties 同上 Session session = Session.getDefaultInstance(props); session.setDebug(true); try { System.out.println("begin delete ..........."); Store store = session.getStore("pop3"); store.connect(host, userName, passWord);//驗證郵箱 Folder folder = store.getFolder("INBOX"); folder.open(Folder.READ_WRITE);//設置我讀寫方式打開 int countOfAll = folder.getMessageCount();//取得郵件個數 int unReadCount = folder.getUnreadMessageCount();//已讀個數 int newOfCount = folder.getNewMessageCount();//未讀個數 System.out.println("總個數:" +countOfAll); System.out.println("已讀個數:" +unReadCount); System.out.println("未讀個數:" +newOfCount); for(int i=1; i<=countOfAll; i++) { Message message = folder.getMessage(i); message.setFlag(Flags.Flag.DELETED, true);//設置已刪除狀態為true if(message.isSet(Flags.Flag.DELETED)) System.out.println("已經刪除第"+i+"郵件。。。。。。。。。"); } folder.close(true); store.close(); System.out.println("delete ok................................."); } catch (NoSuchProviderException e) { e.printStackTrace(); } catch (MessagingException e) { e.printStackTrace(); } } /** * reply mail */ public static void replyMail() { //test } } 注意:此實現要求郵箱都支持pop3和smtp協議。現在老的網易郵箱都支持(2006年以前注冊的),所以的sina的 qq的都可以,雅虎的部分支持,具體的可以在網上搜下把。 ============================================================================== 還有一種辦法,也是我以前用到的。 其實最簡單的發郵件方式是用Apache的Common組件中的Email組件,封裝得很不錯。 特簡單。首先從Sun的網站上下載JavaMail框架實現,最新的版本是1.4.1。然後是JavaBeans Activation Framework,最新版本1.1.1,JavaMail需要這個框架。不過如果JDK是1.6的話就不用下了。1.6已經包括了JavaBeans Activation Framework。 最後從 http://commons.apache.org/email/ 下載最新的Common Email,版本1.1。 首先在Eclipse中建立一個新的Java工程,然後把JavaMail和Common Email解壓縮,在工程中添加解壓縮出來的所有Jar的引用。 代碼: package org.fourpane.mail; import org.apache.commons.mail.EmailException; import org.apache.commons.mail.HtmlEmail; public class Mail { public static void main(String[] args) { //SimpleEmail email = new SimpleEmail(); HtmlEmail email = new HtmlEmail(); email.setHostName("smtp.163.com");//郵件伺服器 email.setAuthentication("xingui5624", "******");//smtp認證的用戶名和密碼 try { email.addTo("[email protected]");//收信者 email.setFrom("[email protected]", "******");//發信者 email.setSubject("xingui5624的測試郵件");//標題 email.setCharset("UTF-8");//編碼格式 email.setMsg("這是一封xingui5624的測試郵件");//內容 email.send();//發送 System.out.println("send ok.........."); } catch (EmailException e) { e.printStackTrace(); } } } 【如果發送不成功,可能是你的jar包問題,javamail 的jar可能和jdk1.5以上的j2ee的jar沖突。還有就是可能你的郵箱不支持pop3和smtp協議。】

求採納

㈡ java 驗證郵箱格式怎麼實現

public class Test{
public static void main(String[] args){
Test t = new Test();
String email = "[email protected]" ;
boolean isEmail = t.isEmail(email);
if(isEmail){
System.out.println(email +" is a right email!!!");
}else{
System.out.println("error");
}
}
public boolean isEmail(String email){
//正則表達式
/*
String regex = "^[A-Za-z]{1,40}@[A-Za-z0-9]{1,40}\\.[A-Za-z]{2,3}$";
return email.matches(regex);
*/

//不適用正則
if(email==null||"".equals(email)) return false ;
if(!containsOneWord('@',email)||!containsOneWord('.',email)) return false;
String prefix = email.substring(0,email.indexOf("@"));
String middle = email.substring(email.indexOf("@")+1,email.indexOf("."));
String subfix = email.substring(email.indexOf(".")+1);
System.out.println("prefix="+prefix +" middle="+middle+" subfix="+subfix);

if(prefix==null||prefix.length()>40||prefix.length()==0) return false ;
if(!isAllWords(prefix)) return false ;
if(middle==null||middle.length()>40||middle.length()==0) return false ;
if(!isAllWordsAndNo(middle)) return false ;
if(subfix==null||subfix.length()>3||subfix.length()<2) return false ;
if(!isAllWords(subfix)) return false ;
return true ;
}
//判斷字元串只包含指定的一個字元c
private boolean containsOneWord(char c , String word){
char[] array = word.toCharArray();
int count = 0 ;
for(Character ch : array){
if(c == ch) {
count++;
}
}
return count==1 ;
}
//檢查一個字元串是否全部是字母
private boolean isAllWords(String prefix){
char[] array = prefix.toCharArray();
for(Character ch : array){
if(ch<'A' || ch>'z' || (ch<'a' && ch>'Z')) return false ;
}
return true;
}
//檢查一個字元串是否包含字母和數字
private boolean isAllWordsAndNo(String middle){
char[] array = middle.toCharArray();
for(Character ch : array){
if(ch<'0' || ch > 'z') return false ;
else if(ch >'9' && ch <'A') return false ;
else if(ch >'Z' && ch <'a') return false ;
}
return true ;
}
}

㈢ java怎樣判斷是否是MSN和QQ郵箱

很好判斷復啊,根據制'@'後面的域名判斷啊,如果是qq.com則就是QQ郵箱,如果是hotmail.com之類的則就是MSN了
用正則表達式可以做到,也可用str.endWith("@hotmail.com")這個方法應該也好實現。
你試試。

good luck to you!
msn郵箱就是指以hotmail.com結尾的郵箱
同時還包括 後綴為msn.com的,微軟以前的郵箱後綴,
再有啥我也不知道烈。
據'@'後面的域名判斷啊

㈣ java :從控制台輸入一個字元串,驗證是不是郵箱實例一個

樓主你沒說清楚合法郵箱的規則呀。下面我自定了一個合法郵箱規則,希望能幫助樓主理解。
代碼如下:
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);

System.out.println("請輸入一個郵箱地址:");
String mail = sc.nextLine();

/*
設定郵箱地址的合法規則,合法郵箱地址要求如下:
(1)字元必須是英文或數字開始
(2)必須包含一個@
(3)@符號在. 符號前面
(4)以英文或數字結尾

*/
//設置一個正則表達式
String reg = "[\\w]+@[\\w]+.[\\w]+";

//告知此字元串是否匹配給定的正則表達式。
if(mail.matches(reg)) {
System.out.println("郵箱地址合法!");
}
else {
System.out.println("郵箱地址不合法!");
}

}
}

這里主要是採用正則表達式的方式。關於正則表達式,樓主可以查看Pattern類和Matcher類。樓主可以可以到網上查看下相關資料。很快就能理解了。

這里解釋下上面的正則表達式String reg = "[\\w]+@[\\w]+.[\\w]+";
\w 表示單詞字元:[a-zA-Z_0-9],上面是兩個反斜桿是因為反斜桿是轉義字元
+號表示:出現一次或多次 ,所以[\\w]+意思就是一到多個單詞字元(英文或數字)
@ :直接表示@字元
.:表示點字元
綜上所述。
String reg = "[\\w]+@[\\w]+.[\\w]+";的意思就是 :一到多個字元 + @ + 一到多個字元 + 點 + 一到多個字元。
正則表達式使用的好。可以解決很多問題。希望樓主能學好~~

㈤ 如何用JAVA語句判斷郵箱的正確格式

//判斷是否為郵箱格式
引入正則表達式包文件
聲明這樣一個正則表達式:reg=/^\w+[@]\w+[.][\w.]+$/
if(!reg.exec(xxxx)){
………………
}else{
……
}

㈥ 如何用java檢驗電子郵箱格式的合法性要用到String的方法來判斷

||自己寫邏輯驗證的方式可以做到。我寫了下面的:

public static boolean validateEmail(String email) {
boolean flag = false;
int pos = email.indexOf("@");
if (pos == -1 || pos == 0 || pos == email.length() - 1) {
return false;
}
String[] strings = email.split("@");
if (strings.length != 2) {// 如果郵箱不是xxx@xxx格式
return false;
}
CharSequence cs = strings[0];
for (int i = 0; i < cs.length(); i++) {
char c = cs.charAt(i);
if (!Character.isLetter(c) && !Character.isDigit(c)) {
return false;
}
}
pos = strings[1].indexOf(".");// 如果@後面沒有.,則是錯誤的郵箱。
if (pos == -1 || pos == 0 || pos == email.length() - 1) {
return false;
}
strings = strings[1].split(".");
for (int j = 0; j < strings.length; j++) {
cs = strings[j];
if (cs.length() == 0) {
return false;
}
for (int i = 0; i < cs.length(); i++) {//如果保護不規則的字元,表示錯誤
char c = cs.charAt(i);
if (!Character.isLetter(c) && !Character.isDigit(c)) {
return false;
}
}

}
return true;
}

這個效率也不會差很多,不過我推薦matches方法,經過測試的,matches匹配方式運行10000次的時間比上面的時間少了20毫秒。

㈦ 怎麼用JAVA實現郵件發送

一個小例子,也可使用其他api

importjava.util.Properties;
importjavax.mail.Address;
importjavax.mail.Authenticator;
importjavax.mail.BodyPart;
importjavax.mail.Message;
importjavax.mail.Multipart;
importjavax.mail.PasswordAuthentication;
importjavax.mail.Session;
importjavax.mail.Transport;
importjavax.mail.internet.InternetAddress;
importjavax.mail.internet.MimeBodyPart;
importjavax.mail.internet.MimeMessage;
importjavax.mail.internet.MimeMultipart;
importjavax.mail.internet.MimeUtility;

publicclassTest{

//test
publicstaticvoidmain(String[]args)throwsException{
sendEmail("smtp.163.com","測試","測試","!!!收件人地址!!!","!!!發件人郵箱用戶名!!!","!!!郵箱密碼!!!","發件人昵稱");
}

/**
*
*@paramsmtp
*@throwsException
*/
publicstaticvoidsendEmail(StringemailServer,Stringsubject,StringmailBody,Stringreceiver,finalStringusername,finalStringpassword,Stringnickname)throwsException{
Propertiesprops=newProperties();
props.put("mail.smtp.auth","true");
props.setProperty("mail.transport.protocol","smtp");
props.setProperty("mail.smtp.host",emailServer);
props.setProperty("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory");
props.setProperty("mail.smtp.socketFactory.fallback","false");
props.setProperty("mail.smtp.port","465");
props.setProperty("mail.smtp.socketFactory.port","465");
Sessionsession=Session.getDefaultInstance(props,newAuthenticator(){
(){
(username,password);
}
});
session.setDebug(true);
MimeMessagemimeMsg=newMimeMessage(session);
Multipartmp=newMimeMultipart();

mimeMsg.setSubject(MimeUtility.encodeText(subject,"utf-8",null));

nickname=MimeUtility.encodeText(nickname,"utf-8",null);
mimeMsg.setFrom(newInternetAddress(username,nickname,"UTF-8"));

BodyPartbp=newMimeBodyPart();
bp.setContent(mailBody,"text/html;charset=utf-8");
mp.addBodyPart(bp);

mimeMsg.setRecipients(Message.RecipientType.TO,InternetAddress.parse(receiver));

mimeMsg.setContent(mp);
mimeMsg.saveChanges();
Transporttransport=session.getTransport();
transport.connect(username,password);
Address[]allRecipients=mimeMsg.getAllRecipients();
transport.sendMessage(mimeMsg,allRecipients);
transport.close();
}
}

㈧ java如何驗證一個email地址是否真實有效。

首先使用java提供的格式類判斷email是否格式有誤,然後使用開源框架,驗證郵箱是否有用,示例如下:

publicstaticbooleancheckEmail(Stringemail){
if(!email.matches("[\w\.\-]+@([\w\-]+\.)+[\w\-]+")){
returnfalse;
}

Stringhost="";
StringhostName=email.split("@")[1];
Record[]result=null;
SMTPClientclient=newSMTPClient();

try{
//查找MX記錄
Lookuplookup=newLookup(hostName,Type.MX);
lookup.run();
if(lookup.getResult()!=Lookup.SUCCESSFUL){
returnfalse;
}else{
result=lookup.getAnswers();
}

//連接到郵箱伺服器
for(inti=0;i<result.length;i++){
host=result[i].getAdditionalName().toString();
client.connect(host);
if(!SMTPReply.isPositiveCompletion(client.getReplyCode())){
client.disconnect();
continue;
}else{
break;
}
}

//以下2項自己填寫快速的,有效的郵箱
client.login("163.com");
client.setSender("[email protected]");
client.addRecipient(email);
if(250==client.getReplyCode()){
returntrue;
}
}catch(Exceptione){
e.printStackTrace();
}finally{
try{
client.disconnect();
}catch(IOExceptione){
}
}
returnfalse;
}

需要的jar支持:commons-net-2.2.jar,dnsjava-2.1.1.jar
閱讀全文

與java郵箱可以偽造嗎相關的資料

熱點內容
現代密碼學教程第3章密碼學基礎 瀏覽:894
手機恢復系統找文件 瀏覽:877
iphone刪除插件 瀏覽:125
新版本扣扣怎麼加好友 瀏覽:243
有什麼教種花診療的app 瀏覽:699
mac國家或地區代碼 瀏覽:946
黑蘋果配置文件備份 瀏覽:441
藍盾文件管理 瀏覽:746
4s如何跳過激活程序 瀏覽:765
c語言編程之後按哪個鍵運行 瀏覽:328
iphone圖標修復 瀏覽:374
ae文件怎麼導入視頻 瀏覽:216
暗黑2注冊表哪些文件能刪除 瀏覽:828
fbx文件格式的動畫作品有哪些 瀏覽:364
蘋果可用的文件管理器 瀏覽:67
蕪湖學習少兒編程有哪些 瀏覽:330
3dbrush官方網站是什麼 瀏覽:959
虛擬機關閉文件共享 瀏覽:991
java程序設計輸入輸出 瀏覽:619
流程圖編輯工具 瀏覽:367

友情鏈接