gpt4 book ai didi

java - 如何使用java代码检查邮件是否未发送

转载 作者:行者123 更新时间:2023-12-02 07:21:35 25 4
gpt4 key购买 nike

我使用以下代码发送邮件

public class Mail
{
public static void main(String[] args)
{
String[] to={"abcd@xyz.co"};
String[] cc={"pqrs@xyz.com"};
String subject = "Subject";
String body = "This is Body....!!";

Mail.sendMail("From@gmail.com","Password","smtp.gmail.com","465","true",
"true",true,"javax.net.ssl.SSLSocketFactory","false",to,cc,
subject,body);
}



public synchronized static boolean sendMail(String userName,String passWord,String host,String port,String starttls,String auth,boolean debug,String socketFactoryClass,String fallback,String[] to,String[] cc,String subject,String text)
{
Properties props = new Properties();
//Properties props=System.getProperties();
props.put("mail.smtp.user", userName);
props.put("mail.smtp.host", host);
if(!"".equals(port))
props.put("mail.smtp.port", port);
if(!"".equals(starttls))
props.put("mail.smtp.starttls.enable",starttls);
props.put("mail.smtp.auth", auth);
if(debug){
props.put("mail.smtp.debug", "true");
}else{
props.put("mail.smtp.debug", "false");
}
if(!"".equals(port))
props.put("mail.smtp.socketFactory.port", port);
if(!"".equals(socketFactoryClass))
props.put("mail.smtp.socketFactory.class",socketFactoryClass);
if(!"".equals(fallback))
props.put("mail.smtp.socketFactory.fallback", fallback);

try
{
Session session = Session.getDefaultInstance(props, null);
session.setDebug(debug);
MimeMessage msg = new MimeMessage(session);
msg.setText(text);
msg.setSubject(subject);
msg.setFrom(new InternetAddress("From@gmail.com"));
for(int i=0;i<to.length;i++){
msg.addRecipient(Message.RecipientType.TO, new InternetAddress(to[i]));
}
for(int i=0;i<cc.length;i++){
msg.addRecipient(Message.RecipientType.CC, new InternetAddress(cc[i]));
}
msg.saveChanges();
Transport transport = session.getTransport("smtp");
transport.connect(host, userName, passWord);
transport.sendMessage(msg, msg.getAllRecipients());
transport.close();
return true;
}
catch (Exception mex)
{
mex.printStackTrace();
return false;
}
}

代码工作正常并且消息已发送。但如果消息尚未发送(例如当我尝试发送到 abcd@xyz.com 因为它的邮件 ID 无效时),我想设置一个标志(例如 flag=false)。如果有人能在这方面帮助我,我将非常感激。

提前致谢

最佳答案

您可能需要将实际的电子邮件放入 msg.setFrom() 中,并检查其收件箱中是否有 Non delivery report .

大多数服务器会在放弃之前多次尝试发送您的电子邮件,因此您无法立即确定该电子邮件是否有效。

关于java - 如何使用java代码检查邮件是否未发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14151463/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com