Java sdk一个无效邮箱 整个任务失败

Java sdk一个无效邮箱 整个任务失败,第1张

经过上网搜索及分析排查,发现在抛出的异常类SMTPAddressFailedException中包含有无效的邮箱地址,而通过方法getInvalidAddresses()即可获取到无效的邮箱地址列表,而在获取到无效的邮箱地址之后从原来的邮箱地址列表中剔除掉再重新发送一次,即可把问题完美解决掉。
拓展:
废话不啰嗦,直接上代码。注意,代码中的邮件服务器地址和账号密码已经隐去,大家换成自己家的配置即可。
package comdemoutils;
import comalibabafastjsonJSON;
import comsunmailsmtpSMTPAddressFailedException;
import orgapachecommonslang3StringUtils;
import javaxactivationDataHandler;
import javaxactivationDataSource;
import javaxactivationFileDataSource;
import javaxmail;
import javaxmailinternet;
import javaioFile;
import javaioUnsupportedEncodingException;
import javautilArrayList;
import javautilList;
import javautilProperties;
public class MailUtils {undefined
private static String mailHost = "";
private static String mailName = "mailname@emailcom";
private static String hostPort = "25";
private static String password = "password";
public static void main(String[] args) {undefined
try {undefined
File attachment = null;
String mailSubject = "Email Subject Demo";
String mailHtmlConent = "Dear:This is mail content。";
String emailReceiveList = null;
String emailCcList = null;

//以下是发送邮件的客户端------------------------------要导入javamail api包
public class ClientMail
{
public static void main(String[] args) throws MessagingException,
FileNotFoundException, IOException
{
sendMail();
}
private static void sendMail() throws MessagingException, FileNotFoundException,
IOException
{
Properties props = new Properties();
//设置连接参数
propssetProperty("mailhost", "smtpqqcom");
propssetProperty("mailtransportprotocol", "smtp");
propssetProperty("mailsmtpauth", "true");
//获取session
Session session = SessiongetDefaultInstance(props);
sessionsetDebug(true);
//创建邮件内容
MimeMessage message = createMessage(session);
//获取Transport对象
Transport transport = sessiongetTransport();
//连接邮件smtp服务器,参数分别为服务器地址,用户名和密码
transportconnect("smtpqqcom", "888888@qqcom", "888888");
//发送消息
transportsendMessage(message, messagegetAllRecipients());
//关闭连接
transportclose();
}
//创建邮件
private static MimeMessage createMessage(Session session) throws AddressException,
MessagingException, FileNotFoundException, IOException
{
MimeMessage message = new MimeMessage(session);
messagesetFrom(new InternetAddress("66666@qqcom"));
messagesetRecipient(RecipientTypeTO, new InternetAddress
("888888@qqcom"));
messagesetSubject("邮件主题");
messagesetSentDate(new Date());
messagesetContent("邮件发送的内容", "text/html;charset=utf-8");
messagewriteTo(new FileOutputStream("d:/hahaeml"));
return message;
}
}
//以下是接收邮件的客户端-----------------------------------------------------------------
public class MailReceiver
{
public Properties getProperties()
{
Properties p = new Properties();
pput("mailpop3host", "11310816116");
pput("mailpop3port", "110");
pput("mailpop3auth", "true");
return p;
}
public void writeMail(String file,String content) throws IOException
{
FileOutputStream fos = new FileOutputStream(file);
foswrite(contentgetBytes());
}
public static void main(String[] args) throws MessagingException, IOException
{
MailReceiver mail = new MailReceiver();
Session session = SessiongetDefaultInstance(mailgetProperties());
Store store = sessiongetStore("pop3");
//分别是pop3邮件服务器地址,用户名和密码
storeconnect("11310816116", "66666", "88888888");
//获取邮件目录
Folder folder = storegetFolder("INBOX"); //INBOX必须
//设置只读
folderopen(FolderREAD_ONLY);
//获取邮件
Message[] messages = foldergetMessages();
for (int i = messageslength-1; i > 0 ; i--)
{
Systemoutprintln(i+"------------------------------------------");
//打印出邮件的标题
Systemoutprintln(messages[i]getSubject());
//将获取到的邮件内容写入d盘,并保存为html格式
mailwriteMail("d:\\"+i+"html", messages[i]getContent()toString());
}
folderclose(true);
storeclose();
}
}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/12732711.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-27
下一篇 2023-05-27

发表评论

登录后才能评论

评论列表(0条)

保存