波波老师,您好,我在本地运行的时候,mail服务的邮件一直不能发出去,我已经在阿里云的CRM中申请了access-key和secret,
但是发送邮件邮箱没有改,用的还是代码中的FROM = "staffjoy@dm.staffjoy.xyz";
在页面点击注册时报错如下
com.aliyuncs.exceptions.ClientException: InvalidUser.NotFound : The specified user does not found.
RequestId : A28EBEEA-7AFD-4204-9AAC-DABA18BC5FD1
at com.aliyuncs.DefaultAcsClient.parseAcsResponse(DefaultAcsClient.java:151)
at com.aliyuncs.DefaultAcsClient.getAcsResponse(DefaultAcsClient.java:96)
at xyz.staffjoy.mail.service.MailSendService.sendMailAsync(MailSendService.java:67)
at xyz.staffjoy.mail.service.MailSendService$$FastClassBySpringCGLIB$$94ad016b.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:749)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:115)
at org.apache.skywalking.apm.plugin.spring.async.SWCallable.call(SWCallable.java:49)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
我试过把FROM改为自己的阿里云邮箱,也报错:
The specified mailAddress does not exist.
请老师帮忙看下,从搭建工程到能运行起来花了两天时间,最后工程跑起来了,但是由于配置问题不能完美运行,自己对阿里云这块也不是很了解,也翻了官方的文档,但是还是没有解决问题,有点小沮丧,希望老师能指点一二
展开
作者回复: 你好,我尝试了一下发给我163的邮箱,用默认的FROM = "staffjoy@dm.staffjoy.xyz",是可以收到的。
Staffjoy发邮件用的是阿里云DirectMail服务,可能这个发信地址是和我的阿里云账户绑定的,如果你要改设自己的DirectMail的发信邮箱,有点麻烦,参考:https://help.aliyun.com/document_detail/29426.html?spm=a2c4g.11186623.6.557.54485748dBWkAp
如果发不了邮件的话,有一个小技巧可以绕过,如果注册邮件发不成功,代码会抛和log一个异常(邮件发送失败都会发异常日志),这个异常里头有激活邮件连接,把这个链接贴到浏览器就可以激活了。
另外,非生产环境,邮件只能发给指定邮箱后缀的用户,这个在mail-api的MailConstant中可以改代码常量STAFFJOY_EMAIL_SUFFIX,默认发给STAFFJOY_EMAIL_SUFFIX = "@jskillcloud.com