❶ 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发送html格式邮件是否能有js
1、如果是想用HTML做发送的内容及布局的话,那就不要用js
2、如果在发送邮件的时候将HTML文件作为附件的话,那是可以有js的
Java发送邮件需要用到JavaMail,先到Oracle官网上下载好最新版本的JavaMail(刚才看了一下,最新是1.5.3),把下载的这个jar文件放到classpath里(如果是Web项目,就放到WEB-INF/lib目录下。
JavaMail主要支持发送纯文本的和html格式的邮件。
java发送html格式邮件的具体实现:
importjavax.mail.internet.InternetAddress;
importjavax.mail.internet.MimeMessage;
importjavax.mail.internet.MimeUtility;
importjavax.mail.Session;
importjavax.mail.MessagingException;
importjavax.mail.Transport;
publicclassSendHtmlMail{
publicstaticvoidsendMessage(StringsmtpHost,
Stringfrom,Stringto,
Stringsubject,StringmessageText)
throwsMessagingException,java.io.UnsupportedEncodingException{
//Step1:Configurethemailsession
System.out.println("Configuringmailsessionfor:"+smtpHost);
java.util.Propertiesprops=newjava.util.Properties();
props.setProperty("mail.smtp.auth","true");//指定是否需要SMTP验证
props.setProperty("mail.smtp.host",smtpHost);//指定SMTP服务器
props.put("mail.transport.protocol","smtp");
SessionmailSession=Session.getDefaultInstance(props);
mailSession.setDebug(true);//是否在控制台显示debug信息
//Step2:Constructthemessage
System.out.println("Constructingmessage-from="+from+"to="+to);
InternetAddressfromAddress=newInternetAddress(from);
InternetAddresstoAddress=newInternetAddress(to);
MimeMessagetestMessage=newMimeMessage(mailSession);
testMessage.setFrom(fromAddress);
testMessage.addRecipient(javax.mail.Message.RecipientType.TO,toAddress);
testMessage.setSentDate(newjava.util.Date());
testMessage.setSubject(MimeUtility.encodeText(subject,"gb2312","B"));
testMessage.setContent(messageText,"text/html;charset=gb2312");
System.out.println("Messageconstructed");
//Step3:Nowsendthemessage
Transporttransport=mailSession.getTransport("smtp");
transport.connect(smtpHost,"webmaster","password");
transport.sendMessage(testMessage,testMessage.getAllRecipients());
transport.close();
System.out.println("Messagesent!");
}
publicstaticvoidmain(String[]args){
StringsmtpHost="localhost";
Stringfrom="[email protected]";
Stringto="[email protected]";
Stringsubject="html邮件测试";//subjectjavamail自动转码
StringBuffertheMessage=newStringBuffer();
theMessage.append("<h2><fontcolor=red>这倒霉孩子</font></h2>");
theMessage.append("<hr>");
theMessage.append("<i>年年失望年年望</i>");
try{
SendHtmlMail.sendMessage(smtpHost,from,to,subject,theMessage.toString());
}
catch(javax.mail.MessagingExceptionexc){
exc.printStackTrace();
}
catch(java.io.){
exc.printStackTrace();
}
}
}
❸ java web发送邮件里包含动态超链接该怎么实现
html邮件发送:
static Properties t= new Properties();
// 协议
t.put("mail.transport.protocol", "smtp");
// 端口
t.put("mail.smtp.port", "25");
// 主机
t.put("mail.smtp.host", "smtp.163.com");
// 认证
t.put("mail.smtp.auth", "true");
// 调试
prop.put("mail.debug", "true");
// 发送html邮件
public static void sendHtmlEmail() throws Exception {
//创建会话对象
Session session = Session.getDefaultInstance(t, new MyAuthenticator("user","pwd"));
//邮件对象
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress("xx@qq.com"));
message.setRecipient(RecipientType.CC, new InternetAddress("[email protected]"));
message.setSentDate(new Date());
message.setSubject("三国杀..............");
message.setContent("<a href='http://www..com'>度娘</a>", "text/html;charset=GBK");
message.saveChanges();
// 发送
Transport.send(message);
}
❹ 利用Java的字符串处理技术,编写一个验证Email地址合法性的程序
实现原理,实际上就是输入一个字符串,之后通过正则表达式验证此字符串是否符合邮箱的格式规范,通过以下工具类即可:
importjava.util.regex.Matcher;
importjava.util.regex.Pattern;
publicclassRegisterCheck{
/**
*验证输入的邮箱格式是否符合
*@paramemail
*@return是否合法
*/
(Stringemail)
{
booleantag=true;
finalStringpattern1="^([a-z0-9A-Z]+[-|//.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?//.)+[a-zA-Z]{2,}$";
finalPatternpattern=Pattern.compile(pattern1);
finalMatchermat=pattern.matcher(email);
if(!mat.find()){
tag=false;
}
returntag;
}
}
❺ java开发工程师一般都做什么开发
Java主要用来做以下几种开发:一是网页开发;二是最常用的移动APP开发,比如Android上的一些APP程序;三是一些H5的WEB APP开发;四是一些手机上的小游戏,大概可以分为这几种。
总体上说java可应用的领域是最广泛的,所以想要学java从事java的人也越来越多。有零基础想学java的朋友们,可以先在网上找视频自学java基础,像是B站上老杜的java零基础入门教程,还有可以到慕课和CSDN这样有名的网站上学习交流,学到入门级水平后,有条件的就可以上个培训班,达到能就业工作的技术水平。
❻ javaweb,邮箱发送验证码后进行校验。
简单点,就是保存在缓存里面,new一个map放在里面就是了。校验的话直接和map里面的去比。
publicclassaaa{
publicstaticMap<String,String>map=newHashMap<String,String>();//定义一个静态map,放验证码
//比如这个是生成验证码
publicStringCreateCheckCode(Stringname){
StringcheckCode="";
String[]arrs={"a","b","c","d","e","f","g","h","i","j",
"k","l","m","n","o","p","q","r","s","t","u","v",
"w","x","y","z","A","B"};
//随机生成验证码、
for(inti=0;i<6;i++){
inta=(int)(Math.random()*28);
checkCode+=arrs[a];
}
//为了保证唯一性质,我们可以使用注册的客户的名字作为key
map.put(name,checkCode);
System.out.println(checkCode);
returncheckCode;
}
//这个可以作为控制层:比如客户点击验证的连接,就会进入这个方法:来验证验证码
publicbooleanverifyCheckCode(Stringname,StringcheckCode)
{
booleanflag=false;
Stringcode=map.get(name);
if(null!=code&&code.equals(checkCode)){
flag=true;
}
returnflag;
}
}
❼ 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]+";的意思就是 :一到多个字符 + @ + 一到多个字符 + 点 + 一到多个字符。正则表达式使用的好。
合法E-mail地址: 1. 必须包含一个并且只有一个符号“@” 2. 第一个字符不得是“@”或者“.” 3. 不允许出现“@.”或者.@ 4. 结尾不得是字符“@”或者“.” 5. 允许“@”前的字符中出现“+” 6. 不允许“+”在最前面,或者“+@”
❽ 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 ;
}
}