### outlook邮箱通过smtp服务发送邮件怎么解决多个线程发送?
```go
var (
wg sync.WaitGroup
)
func main() {
for i := 0; i < 5; i++ {
wg.Add(1)
go Send(email, password, to, smtp_addr,port)
}
wg.Wait()
fmt.Println("send success")
}
```
##### 运行后的错误显示
```
sendError 432 4.3.2 STOREDRV.ClientSubmit; sender thread limit exceeded [Hostname=HK0PR03MB5140.apcprd03.prod.outlook.com]
sendError 432 4.3.2 STOREDRV.ClientSubmit; sender thread limit exceeded [Hostname=HK0PR03MB5140.apcprd03.prod.outlook.com]
sendError 432 4.3.2 STOREDRV.ClientSubmit; sender thread limit exceeded [Hostname=HK0PR03MB5140.apcprd03.prod.outlook.com]
sendError 432 4.3.2 STOREDRV.ClientSubmit; sender thread limit exceeded [Hostname=HK0PR03MB5140.apcprd03.prod.outlook.com]
```
百度了一下,发现是outlook邮箱发送文件时同一个邮箱同时只能有一个线程发送文件的问题。国内的网易等邮箱测试都没有这个问题,所以我应该怎么解决这个问题?
不是这个问题,我在send方法中已经加了defer wg.Done();如果在go send 下面加那么send中的代码没有执行完,整个程序就会结束了。我现在的问题是smtp服务收到我多个send请求后只处理第一个,即只发送一次邮件。而国内其他的邮箱试了都没有这个问题
#3
更多评论