웹 응용 프로그램은 전자 메일 ID를 입력 한 모든 사용자에게 전자 메일을 보냅니다. 그러나 사용자가 입력 한 전자 메일 아이디가 유효한 아이디인지 확인하려면 어떻게해야합니까? 실제로 어떤 사용자가 전자 메일 아이디를 입력 할 때 우리는 전자 메일 아이디에 대한 링크를 보내어 아이디를 활성화합니다. 전자 메일을 보내는 코드가 있습니다. 그러나 메일 ID가 없어도 오류를주지 않습니다. 문제 해결 방법을 알려주시겠습니까? 이메일 ID가 실제로 존재하지 않으면 오류가 발생합니다.자바에서 메일을 보내 전자 메일 주소를 확인하는 방법
여기 내 코드
package csv;
import javax.mail.PasswordAuthentication;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
public class email {
public void send(String recipeintEmail,
String subject,
String messageText,String[] attachments)
throws MessagingException, AddressException {
/*
It is a good practice to put this in a java.util.Properties
file and encrypt password. Scroll down
to comments below to see
how to use java.util.Properties in JSF context.
*/
String senderEmail = "our email address";
String senderMailPassword = "password";
String gmail = "smtp.gmail.com";
Properties props = System.getProperties();
props.put("mail.smtp.user", senderEmail);
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.port", "465");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.debug", "true");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.socketFactory.class",
"javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.socketFactory.fallback", "false");
// Required to avoid security exception.
email.MyAuthenticator authentication =
new email.MyAuthenticator(senderEmail,senderMailPassword);
Session session =
Session.getDefaultInstance(props,authentication);
session.setDebug(true);
MimeMessage message = new MimeMessage(session);
BodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setText(messageText);
// Add message text
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);
// Attachments should reside in your server.
// Example "c:\file.txt" or "/home/user/photo.jpg"
for (int i=0; i < attachments.length; i++) {
messageBodyPart = new MimeBodyPart();
DataSource source = new FileDataSource(attachments[i]);
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName(attachments [i]);
multipart.addBodyPart(messageBodyPart) ;
}
message.setContent(multipart);
message.setSubject(subject);
message.setFrom(new InternetAddress(senderEmail));
message.addRecipient(Message.RecipientType.TO,
new InternetAddress(recipeintEmail));
Transport transport = session.getTransport("smtps");
transport.connect(gmail,465, senderEmail, senderMailPassword);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
}
private class MyAuthenticator extends javax.mail.Authenticator {
String User;
String Password;
public MyAuthenticator (String user, String password) {
User = user;
Password = password;
}
@Override
public PasswordAuthentication getPasswordAuthentication() {
return new javax.mail.PasswordAuthentication(User, Password);
}
}
public static void main(String args[]) throws MessagingException
{
// email e=new email();
// String at[]={"c:/COPYRIGHT.txt"};
// e.send("[email protected]", "hello","test" )");
}
}
확인. 나는 너의 대답을 얻었다. 우리의 응용 프로그램에서는 사용자 모빌에 알림을 보냅니다. 그런 다음 모바일 분할 번호와 이메일 주소를 모두 확인하기 위해 비밀 분할을 할 수 있습니까? 임의의 문자열을 생성하고, 2 부분으로 나눠서 모바일에 전송하고 다른 부분은 이메일 ID로 전송합니다. 그런 다음 사용자를 활성화하는 과정에서이를 결합하여 입력해야합니다. 모바일 ID와 전자 메일 ID를 동시에 확인하는 것이 좋은 방법일까요? – kanchan
예. 당신은 또한 고유 ID를 생성하고 사용자의 모바일 번호에 대해 데이터베이스 테이블에 저장할 수 있습니다. 사용자에게도 보내십시오. 사용자가 자신의 고유 ID를 입력하면 데이터베이스 ID와 일치시킵니다. – kandarp