使用QQ邮箱收发邮件遇到的坑 有些WIFI不支持ipv6
使用QQ邮箱发邮件,首先要开启SMTP授权码。
在邮箱的账户安全设置里面

但是某些WIFI报错
sendText failed port 587: Couldn't connect to host, port: smtp.qq.com, 587; timeout 10000
com.sun.mail.util.MailConnectException: Couldn't connect to host, port: smtp.qq.com, 587; timeout 10000;
nested exception is:
java.net.SocketTimeoutException: failed to connect to smtp.qq.com/2408:8756:f50:4::7c (port 587) from /2408:8256:c82:3ddc:c86d:db1c:f147:9836 (port 49116) after 10000ms
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2210)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:722)
at javax.mail.Service.connect(Service.java:364)
at javax.mail.Service.connect(Service.java:222)
at javax.mail.Service.connect(Service.java:171)
at javax.mail.Transport.send0(Transport.java:230)
at javax.mail.Transport.send(Transport.java:100)
at com.miapp.email.EmailSender.sendText(EmailSender.kt:88)
at com.miapp.MainActivity$sendTestEmail 1 1 1ok 1. i n v o k e S u s p e n d ( M a i n A c t i v i t y . k t : 209 ) a t k o t l i n . c o r o u t i n e s . j v m . i n t e r n a l . B a s e C o n t i n u a t i o n I m p l . r e s u m e W i t h ( C o n t i n u a t i o n I m p l . k t : 33 ) a t k o t l i n x . c o r o u t i n e s . D i s p a t c h e d T a s k . r u n ( D i s p a t c h e d T a s k . k t : 106 ) a t k o t l i n x . c o r o u t i n e s . i n t e r n a l . L i m i t e d D i s p a t c h e r 1.invokeSuspend(MainActivity.kt:209) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) at kotlinx.coroutines.internal.LimitedDispatcher 1.invokeSuspend(MainActivity.kt:209)atkotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)atkotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)atkotlinx.coroutines.internal.LimitedDispatcherWorker.run(LimitedDispatcher.kt:115)
at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:100)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584)
at kotlinx.coroutines.scheduling.CoroutineScheduler W o r k e r . e x e c u t e T a s k ( C o r o u t i n e S c h e d u l e r . k t : 793 ) a t k o t l i n x . c o r o u t i n e s . s c h e d u l i n g . C o r o u t i n e S c h e d u l e r Worker.executeTask(CoroutineScheduler.kt:793) at kotlinx.coroutines.scheduling.CoroutineScheduler Worker.executeTask(CoroutineScheduler.kt:793)atkotlinx.coroutines.scheduling.CoroutineSchedulerWorker.runWorker(CoroutineScheduler.kt:697)
at kotlinx.coroutines.scheduling.CoroutineScheduler W o r k e r . r u n ( C o r o u t i n e S c h e d u l e r . k t : 684 ) C a u s e d b y : j a v a . n e t . S o c k e t T i m e o u t E x c e p t i o n : f a i l e d t o c o n n e c t t o s m t p . q q . c o m / 2408 : 8756 : f 50 : 4 : : 7 c ( p o r t 587 ) f r o m / 2408 : 8256 : c 82 : 3 d d c : c 86 d : d b 1 c : f 147 : 9836 ( p o r t 49116 ) a f t e r 10000 m s a t l i b c o r e . i o . I o B r i d g e . c o n n e c t E r r n o ( I o B r i d g e . j a v a : 235 ) a t l i b c o r e . i o . I o B r i d g e . c o n n e c t ( I o B r i d g e . j a v a : 179 ) a t j a v a . n e t . P l a i n S o c k e t I m p l . s o c k e t C o n n e c t ( P l a i n S o c k e t I m p l . j a v a : 142 ) a t j a v a . n e t . A b s t r a c t P l a i n S o c k e t I m p l . d o C o n n e c t ( A b s t r a c t P l a i n S o c k e t I m p l . j a v a : 390 ) a t j a v a . n e t . A b s t r a c t P l a i n S o c k e t I m p l . c o n n e c t T o A d d r e s s ( A b s t r a c t P l a i n S o c k e t I m p l . j a v a : 230 ) a t j a v a . n e t . A b s t r a c t P l a i n S o c k e t I m p l . c o n n e c t ( A b s t r a c t P l a i n S o c k e t I m p l . j a v a : 212 ) a t j a v a . n e t . S o c k s S o c k e t I m p l . c o n n e c t ( S o c k s S o c k e t I m p l . j a v a : 436 ) a t j a v a . n e t . S o c k e t . c o n n e c t ( S o c k e t . j a v a : 646 ) a t c o m . s u n . m a i l . u t i l . W r i t e T i m e o u t S o c k e t . c o n n e c t ( W r i t e T i m e o u t S o c k e t . j a v a : 91 ) a t c o m . s u n . m a i l . u t i l . S o c k e t F e t c h e r . c r e a t e S o c k e t ( S o c k e t F e t c h e r . j a v a : 333 ) a t c o m . s u n . m a i l . u t i l . S o c k e t F e t c h e r . g e t S o c k e t ( S o c k e t F e t c h e r . j a v a : 214 ) a t c o m . s u n . m a i l . s m t p . S M T P T r a n s p o r t . o p e n S e r v e r ( S M T P T r a n s p o r t . j a v a : 2160 ) a t c o m . s u n . m a i l . s m t p . S M T P T r a n s p o r t . p r o t o c o l C o n n e c t ( S M T P T r a n s p o r t . j a v a : 722 ) a t j a v a x . m a i l . S e r v i c e . c o n n e c t ( S e r v i c e . j a v a : 364 ) a t j a v a x . m a i l . S e r v i c e . c o n n e c t ( S e r v i c e . j a v a : 222 ) a t j a v a x . m a i l . S e r v i c e . c o n n e c t ( S e r v i c e . j a v a : 171 ) a t j a v a x . m a i l . T r a n s p o r t . s e n d 0 ( T r a n s p o r t . j a v a : 230 ) a t j a v a x . m a i l . T r a n s p o r t . s e n d ( T r a n s p o r t . j a v a : 100 ) a t c o m . m i a p p . e m a i l . E m a i l S e n d e r . s e n d T e x t ( E m a i l S e n d e r . k t : 88 ) a t c o m . m i a p p . M a i n A c t i v i t y Worker.run(CoroutineScheduler.kt:684) Caused by: java.net.SocketTimeoutException: failed to connect to smtp.qq.com/2408:8756:f50:4::7c (port 587) from /2408:8256:c82:3ddc:c86d:db1c:f147:9836 (port 49116) after 10000ms at libcore.io.IoBridge.connectErrno(IoBridge.java:235) at libcore.io.IoBridge.connect(IoBridge.java:179) at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:142) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:390) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:230) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:212) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:436) at java.net.Socket.connect(Socket.java:646) at com.sun.mail.util.WriteTimeoutSocket.connect(WriteTimeoutSocket.java:91) at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:333) at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:214) at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2160) at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:722) at javax.mail.Service.connect(Service.java:364) at javax.mail.Service.connect(Service.java:222) at javax.mail.Service.connect(Service.java:171) at javax.mail.Transport.send0(Transport.java:230) at javax.mail.Transport.send(Transport.java:100) at com.miapp.email.EmailSender.sendText(EmailSender.kt:88) at com.miapp.MainActivity Worker.run(CoroutineScheduler.kt:684)Causedby:java.net.SocketTimeoutException:failedtoconnecttosmtp.qq.com/2408:8756:f50:4::7c(port587)from/2408:8256:c82:3ddc:c86d:db1c:f147:9836(port49116)after10000msatlibcore.io.IoBridge.connectErrno(IoBridge.java:235)atlibcore.io.IoBridge.connect(IoBridge.java:179)atjava.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:142)atjava.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:390)atjava.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:230)atjava.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:212)atjava.net.SocksSocketImpl.connect(SocksSocketImpl.java:436)atjava.net.Socket.connect(Socket.java:646)atcom.sun.mail.util.WriteTimeoutSocket.connect(WriteTimeoutSocket.java:91)atcom.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:333)atcom.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:214)atcom.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2160)atcom.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:722)atjavax.mail.Service.connect(Service.java:364)atjavax.mail.Service.connect(Service.java:222)atjavax.mail.Service.connect(Service.java:171)atjavax.mail.Transport.send0(Transport.java:230)atjavax.mail.Transport.send(Transport.java:100)atcom.miapp.email.EmailSender.sendText(EmailSender.kt:88)atcom.miapp.MainActivitysendTestEmail 1 1 1ok 1. i n v o k e S u s p e n d ( M a i n A c t i v i t y . k t : 209 ) a t k o t l i n . c o r o u t i n e s . j v m . i n t e r n a l . B a s e C o n t i n u a t i o n I m p l . r e s u m e W i t h ( C o n t i n u a t i o n I m p l . k t : 33 ) a t k o t l i n x . c o r o u t i n e s . D i s p a t c h e d T a s k . r u n ( D i s p a t c h e d T a s k . k t : 106 ) a t k o t l i n x . c o r o u t i n e s . i n t e r n a l . L i m i t e d D i s p a t c h e r 1.invokeSuspend(MainActivity.kt:209) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) at kotlinx.coroutines.internal.LimitedDispatcher 1.invokeSuspend(MainActivity.kt:209)atkotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)atkotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)atkotlinx.coroutines.internal.LimitedDispatcherWorker.run(LimitedDispatcher.kt:115)
at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:100)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584)
at kotlinx.coroutines.scheduling.CoroutineScheduler W o r k e r . e x e c u t e T a s k ( C o r o u t i n e S c h e d u l e r . k t : 793 ) a t k o t l i n x . c o r o u t i n e s . s c h e d u l i n g . C o r o u t i n e S c h e d u l e r Worker.executeTask(CoroutineScheduler.kt:793) at kotlinx.coroutines.scheduling.CoroutineScheduler Worker.executeTask(CoroutineScheduler.kt:793)atkotlinx.coroutines.scheduling.CoroutineSchedulerWorker.runWorker(CoroutineScheduler.kt:697)
at kotlinx.coroutines.scheduling.CoroutineScheduler W o r k e r . r u n ( C o r o u t i n e S c h e d u l e r . k t : 684 ) s e n d T e x t f a i l e d p o r t 587 : C o u l d n ′ t c o n n e c t t o h o s t , p o r t : s m t p . q q . c o m , 587 ; t i m e o u t 10000 c o m . s u n . m a i l . u t i l . M a i l C o n n e c t E x c e p t i o n : C o u l d n ′ t c o n n e c t t o h o s t , p o r t : s m t p . q q . c o m , 587 ; t i m e o u t 10000 ; n e s t e d e x c e p t i o n i s : j a v a . n e t . S o c k e t T i m e o u t E x c e p t i o n : f a i l e d t o c o n n e c t t o s m t p . q q . c o m / 2408 : 8756 : f 50 : 4 : : 7 c ( p o r t 587 ) f r o m / 2408 : 8256 : c 82 : 3 d d c : c 86 d : d b 1 c : f 147 : 9836 ( p o r t 49116 ) a f t e r 10000 m s a t c o m . s u n . m a i l . s m t p . S M T P T r a n s p o r t . o p e n S e r v e r ( S M T P T r a n s p o r t . j a v a : 2210 ) a t c o m . s u n . m a i l . s m t p . S M T P T r a n s p o r t . p r o t o c o l C o n n e c t ( S M T P T r a n s p o r t . j a v a : 722 ) a t j a v a x . m a i l . S e r v i c e . c o n n e c t ( S e r v i c e . j a v a : 364 ) a t j a v a x . m a i l . S e r v i c e . c o n n e c t ( S e r v i c e . j a v a : 222 ) a t j a v a x . m a i l . S e r v i c e . c o n n e c t ( S e r v i c e . j a v a : 171 ) a t j a v a x . m a i l . T r a n s p o r t . s e n d 0 ( T r a n s p o r t . j a v a : 230 ) a t j a v a x . m a i l . T r a n s p o r t . s e n d ( T r a n s p o r t . j a v a : 100 ) a t c o m . m i a p p . e m a i l . E m a i l S e n d e r . s e n d T e x t ( E m a i l S e n d e r . k t : 88 ) a t c o m . m i a p p . M a i n A c t i v i t y Worker.run(CoroutineScheduler.kt:684) sendText failed port 587: Couldn't connect to host, port: smtp.qq.com, 587; timeout 10000 com.sun.mail.util.MailConnectException: Couldn't connect to host, port: smtp.qq.com, 587; timeout 10000; nested exception is: java.net.SocketTimeoutException: failed to connect to smtp.qq.com/2408:8756:f50:4::7c (port 587) from /2408:8256:c82:3ddc:c86d:db1c:f147:9836 (port 49116) after 10000ms at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2210) at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:722) at javax.mail.Service.connect(Service.java:364) at javax.mail.Service.connect(Service.java:222) at javax.mail.Service.connect(Service.java:171) at javax.mail.Transport.send0(Transport.java:230) at javax.mail.Transport.send(Transport.java:100) at com.miapp.email.EmailSender.sendText(EmailSender.kt:88) at com.miapp.MainActivity Worker.run(CoroutineScheduler.kt:684)sendTextfailedport587:Couldn′tconnecttohost,port:smtp.qq.com,587;timeout10000com.sun.mail.util.MailConnectException:Couldn′tconnecttohost,port:smtp.qq.com,587;timeout10000;nestedexceptionis:java.net.SocketTimeoutException:failedtoconnecttosmtp.qq.com/2408:8756:f50:4::7c(port587)from/2408:8256:c82:3ddc:c86d:db1c:f147:9836(port49116)after10000msatcom.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2210)atcom.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:722)atjavax.mail.Service.connect(Service.java:364)atjavax.mail.Service.connect(Service.java:222)atjavax.mail.Service.connect(Service.java:171)atjavax.mail.Transport.send0(Transport.java:230)atjavax.mail.Transport.send(Transport.java:100)atcom.miapp.email.EmailSender.sendText(EmailSender.kt:88)atcom.miapp.MainActivitysendTestEmail 1 1 1ok 1. i n v o k e S u s p e n d ( M a i n A c t i v i t y . k t : 209 ) a t k o t l i n . c o r o u t i n e s . j v m . i n t e r n a l . B a s e C o n t i n u a t i o n I m p l . r e s u m e W i t h ( C o n t i n u a t i o n I m p l . k t : 33 ) a t k o t l i n x . c o r o u t i n e s . D i s p a t c h e d T a s k . r u n ( D i s p a t c h e d T a s k . k t : 106 ) a t k o t l i n x . c o r o u t i n e s . i n t e r n a l . L i m i t e d D i s p a t c h e r 1.invokeSuspend(MainActivity.kt:209) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) at kotlinx.coroutines.internal.LimitedDispatcher 1.invokeSuspend(MainActivity.kt:209)atkotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)atkotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)atkotlinx.coroutines.internal.LimitedDispatcherWorker.run(LimitedDispatcher.kt:115)
at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:100)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584)
at kotlinx.coroutines.scheduling.CoroutineScheduler W o r k e r . e x e c u t e T a s k ( C o r o u t i n e S c h e d u l e r . k t : 793 ) a t k o t l i n x . c o r o u t i n e s . s c h e d u l i n g . C o r o u t i n e S c h e d u l e r Worker.executeTask(CoroutineScheduler.kt:793) at kotlinx.coroutines.scheduling.CoroutineScheduler Worker.executeTask(CoroutineScheduler.kt:793)atkotlinx.coroutines.scheduling.CoroutineSchedulerWorker.runWorker(CoroutineScheduler.kt:697)
at kotlinx.coroutines.scheduling.CoroutineScheduler W o r k e r . r u n ( C o r o u t i n e S c h e d u l e r . k t : 684 ) C a u s e d b y : j a v a . n e t . S o c k e t T i m e o u t E x c e p t i o n : f a i l e d t o c o n n e c t t o s m t p . q q . c o m / 2408 : 8756 : f 50 : 4 : : 7 c ( p o r t 587 ) f r o m / 2408 : 8256 : c 82 : 3 d d c : c 86 d : d b 1 c : f 147 : 9836 ( p o r t 49116 ) a f t e r 10000 m s a t l i b c o r e . i o . I o B r i d g e . c o n n e c t E r r n o ( I o B r i d g e . j a v a : 235 ) a t l i b c o r e . i o . I o B r i d g e . c o n n e c t ( I o B r i d g e . j a v a : 179 ) a t j a v a . n e t . P l a i n S o c k e t I m p l . s o c k e t C o n n e c t ( P l a i n S o c k e t I m p l . j a v a : 142 ) a t j a v a . n e t . A b s t r a c t P l a i n S o c k e t I m p l . d o C o n n e c t ( A b s t r a c t P l a i n S o c k e t I m p l . j a v a : 390 ) a t j a v a . n e t . A b s t r a c t P l a i n S o c k e t I m p l . c o n n e c t T o A d d r e s s ( A b s t r a c t P l a i n S o c k e t I m p l . j a v a : 230 ) a t j a v a . n e t . A b s t r a c t P l a i n S o c k e t I m p l . c o n n e c t ( A b s t r a c t P l a i n S o c k e t I m p l . j a v a : 212 ) a t j a v a . n e t . S o c k s S o c k e t I m p l . c o n n e c t ( S o c k s S o c k e t I m p l . j a v a : 436 ) a t j a v a . n e t . S o c k e t . c o n n e c t ( S o c k e t . j a v a : 646 ) a t c o m . s u n . m a i l . u t i l . W r i t e T i m e o u t S o c k e t . c o n n e c t ( W r i t e T i m e o u t S o c k e t . j a v a : 91 ) a t c o m . s u n . m a i l . u t i l . S o c k e t F e t c h e r . c r e a t e S o c k e t ( S o c k e t F e t c h e r . j a v a : 333 ) a t c o m . s u n . m a i l . u t i l . S o c k e t F e t c h e r . g e t S o c k e t ( S o c k e t F e t c h e r . j a v a : 214 ) a t c o m . s u n . m a i l . s m t p . S M T P T r a n s p o r t . o p e n S e r v e r ( S M T P T r a n s p o r t . j a v a : 2160 ) a t c o m . s u n . m a i l . s m t p . S M T P T r a n s p o r t . p r o t o c o l C o n n e c t ( S M T P T r a n s p o r t . j a v a : 722 ) a t j a v a x . m a i l . S e r v i c e . c o n n e c t ( S e r v i c e . j a v a : 364 ) a t j a v a x . m a i l . S e r v i c e . c o n n e c t ( S e r v i c e . j a v a : 222 ) a t j a v a x . m a i l . S e r v i c e . c o n n e c t ( S e r v i c e . j a v a : 171 ) a t j a v a x . m a i l . T r a n s p o r t . s e n d 0 ( T r a n s p o r t . j a v a : 230 ) a t j a v a x . m a i l . T r a n s p o r t . s e n d ( T r a n s p o r t . j a v a : 100 ) a t c o m . m i a p p . e m a i l . E m a i l S e n d e r . s e n d T e x t ( E m a i l S e n d e r . k t : 88 ) a t c o m . m i a p p . M a i n A c t i v i t y Worker.run(CoroutineScheduler.kt:684) Caused by: java.net.SocketTimeoutException: failed to connect to smtp.qq.com/2408:8756:f50:4::7c (port 587) from /2408:8256:c82:3ddc:c86d:db1c:f147:9836 (port 49116) after 10000ms at libcore.io.IoBridge.connectErrno(IoBridge.java:235) at libcore.io.IoBridge.connect(IoBridge.java:179) at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:142) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:390) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:230) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:212) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:436) at java.net.Socket.connect(Socket.java:646) at com.sun.mail.util.WriteTimeoutSocket.connect(WriteTimeoutSocket.java:91) at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:333) at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:214) at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2160) at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:722) at javax.mail.Service.connect(Service.java:364) at javax.mail.Service.connect(Service.java:222) at javax.mail.Service.connect(Service.java:171) at javax.mail.Transport.send0(Transport.java:230) at javax.mail.Transport.send(Transport.java:100) at com.miapp.email.EmailSender.sendText(EmailSender.kt:88) at com.miapp.MainActivity Worker.run(CoroutineScheduler.kt:684)Causedby:java.net.SocketTimeoutException:failedtoconnecttosmtp.qq.com/2408:8756:f50:4::7c(port587)from/2408:8256:c82:3ddc:c86d:db1c:f147:9836(port49116)after10000msatlibcore.io.IoBridge.connectErrno(IoBridge.java:235)atlibcore.io.IoBridge.connect(IoBridge.java:179)atjava.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:142)atjava.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:390)atjava.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:230)atjava.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:212)atjava.net.SocksSocketImpl.connect(SocksSocketImpl.java:436)atjava.net.Socket.connect(Socket.java:646)atcom.sun.mail.util.WriteTimeoutSocket.connect(WriteTimeoutSocket.java:91)atcom.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:333)atcom.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:214)atcom.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2160)atcom.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:722)atjavax.mail.Service.connect(Service.java:364)atjavax.mail.Service.connect(Service.java:222)atjavax.mail.Service.connect(Service.java:171)atjavax.mail.Transport.send0(Transport.java:230)atjavax.mail.Transport.send(Transport.java:100)atcom.miapp.email.EmailSender.sendText(EmailSender.kt:88)atcom.miapp.MainActivitysendTestEmail 1 1 1ok 1. i n v o k e S u s p e n d ( M a i n A c t i v i t y . k t : 209 ) a t k o t l i n . c o r o u t i n e s . j v m . i n t e r n a l . B a s e C o n t i n u a t i o n I m p l . r e s u m e W i t h ( C o n t i n u a t i o n I m p l . k t : 33 ) a t k o t l i n x . c o r o u t i n e s . D i s p a t c h e d T a s k . r u n ( D i s p a t c h e d T a s k . k t : 106 ) a t k o t l i n x . c o r o u t i n e s . i n t e r n a l . L i m i t e d D i s p a t c h e r 1.invokeSuspend(MainActivity.kt:209) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) at kotlinx.coroutines.internal.LimitedDispatcher 1.invokeSuspend(MainActivity.kt:209)atkotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)atkotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)atkotlinx.coroutines.internal.LimitedDispatcherWorker.run(LimitedDispatcher.kt:115)
at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:100)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584)
at kotlinx.coroutines.scheduling.CoroutineScheduler W o r k e r . e x e c u t e T a s k ( C o r o u t i n e S c h e d u l e r . k t : 793 ) a t k o t l i n x . c o r o u t i n e s . s c h e d u l i n g . C o r o u t i n e S c h e d u l e r Worker.executeTask(CoroutineScheduler.kt:793) at kotlinx.coroutines.scheduling.CoroutineScheduler Worker.executeTask(CoroutineScheduler.kt:793)atkotlinx.coroutines.scheduling.CoroutineSchedulerWorker.runWorker(CoroutineScheduler.kt:697)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:684)
说明这个wifi不支持ipv6,换个wifi就好,能不能写代码兼容,也可以的问下AI呗