Transport.send(message);
用JavaMail發送郵件時,Transport.send()沒有回傳值,當收件人郵箱不存在(比如:誤寫為[email protected])時,不拋例外,那么如何判斷郵件是否發送成功或失敗?據說可以通過狀態碼獲取(如何獲取狀態碼?),Transport提供有使用監聽介面的方法
transport.addTransportListener(new TransportListener() {
@Override
public void messageDelivered(TransportEvent e) {
// TODO Auto-generated method stub
}
@Override
public void messageNotDelivered(TransportEvent e) {
// TODO Auto-generated method stub
}
@Override
public void messagePartiallyDelivered(TransportEvent e) {
// TODO Auto-generated method stub
}});
有人用這個做過嗎?我參考https://blog.csdn.net/runyon1982/article/details/49018873 試了一下沒有成功,執行緒好像堵塞了(狀態碼一直是初始狀態),我對執行緒這塊也不了解,有大神能幫忙提供一些思路或方法嗎?
uj5u.com熱心網友回復:
我也遇到的了同樣的問題,也是失敗。經了解,郵件服務器是否能把郵件轉發到對方的服務器上是個未知數。據說這個訊息是無確認的異步訊息機制。
uj5u.com熱心網友回復:
沒有辦法,java mail 只是把信件發給smtp服務器,smtp是否發送成功是異步程序轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/86177.html
標籤:Java相關
