SMTP服务改进
SHLE1 opened this issue · comments
- 在使用第三方smtp服务商时,“用户名”这一栏经常会要求填写自己的注册账号比如“xxx@gmail.com“来进行验证,但是chatnio用户名一栏似乎不支持在“用户名”一栏出现“@”符号,会提示“SMTP 发件参数未正确配置,已禁用邮箱验证”。
- 希望能去掉这一限制以更好的支持第三方smtp服务。(个人使用brevo,确认配置正确,在其他项目可以发送邮件)
![image](https://private-user-images.githubusercontent.com/101321085/324734418-a4f82bae-a05b-4398-a6ef-8d68206e328a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjA1MjY2MTAsIm5iZiI6MTcyMDUyNjMxMCwicGF0aCI6Ii8xMDEzMjEwODUvMzI0NzM0NDE4LWE0ZjgyYmFlLWEwNWItNDM5OC1hNmVmLThkNjgyMDZlMzI4YS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNzA5JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDcwOVQxMTU4MzBaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1hMTRkMjczMjI5NzgzYjcyM2MzZDVkNzU2MzUzYzFiZDBmYzFmZjRjZWRiMGFkYjAyNmI1ZTliMDU0NmZjNzYzJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.3Bjy-Le0uiSGkvbB9eOT_JkRQ0M-n0jcFNG57pFwLK0)
用户名要去掉@后面的 只需要填smtp的username
发件人才要加@后面的
比如你用 postmaster@deeptrain.net 邮箱发件
用户名为 postmaster
发件人为 postmaster@deeptrain.net
- 问题就是username是service@mydomain.com,含有@就提示“SMTP 发件参数未正确配置,已禁用邮箱验证“
- 例如我用的brave,sender为service@mydomain.com,在用户名处填service是无法通过brevo的验证的,会弹“请求失败
sent mail failed: 535 5.7.8 Authentication failed“ - 这是smtp的设置,在smtpserver测试时将“login“填入”用户名“框才可以发送成功,而在chatnio并不允许将“login“填入“用户名“,所以无法通过认证
- 因为登陆邮箱和发件邮箱并不同,所以区分了用户名和发件人。在one-api的smtp设置中,也区分了smtp账户和smtp发送者邮箱。
![image](https://private-user-images.githubusercontent.com/101321085/324756426-b9d07034-98a2-4f4f-bf9f-fa894bff724c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjA1MjY2MTAsIm5iZiI6MTcyMDUyNjMxMCwicGF0aCI6Ii8xMDEzMjEwODUvMzI0NzU2NDI2LWI5ZDA3MDM0LTk4YTItNGY0Zi1iZjlmLWZhODk0YmZmNzI0Yy5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNzA5JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDcwOVQxMTU4MzBaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1hMmQ5ZGE5ZWE3YjY0YTYwYTNiZDJiZDcyNGU2Nzk2NGI4NWM1MjVlOWZmYTE5YjE5Zjg4MzBhYWQ5MjczNzFmJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.6iA4OcU2iG0IMxnU0TnsS9uJ2sGiI-3wpzDn9aPkBDs)
smtp server 和 port 填的没问题,用户名应该填你的 brevo 用户名,发件人填你的 login
https://github.com/Deeptrain-Community/chatnio/blob/main/utils/smtp.go#L33-L56
正常 SMTP 发件 用户名填入@后缀是无法工作的
- 您说的这样确实可以,但是这样的收件人端显示发件人是代发而不是xxx@mydomain.com。
- 可否像独角数卡一样,添加更多自定义配置来实现?
- 感谢您的耐心回复和指导
![63CBDA82-2B95-4266-9575-FFD483E8CDCE](https://private-user-images.githubusercontent.com/101321085/324762695-370b3e6b-9a48-48f3-8ac3-9167f8f45c07.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjA1MjY2MTAsIm5iZiI6MTcyMDUyNjMxMCwicGF0aCI6Ii8xMDEzMjEwODUvMzI0NzYyNjk1LTM3MGIzZTZiLTlhNDgtNDhmMy04YWMzLTkxNjdmOGY0NWMwNy5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNzA5JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDcwOVQxMTU4MzBaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1hOGEwZWY1ZDdiYzk3ZTJiMGFiOWNhYWQwNjQ2ZTc5YTkxMzBjM2FkZmQxYzU5MTA1ZGM5NWU4M2ZjYTA2M2M2JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.jdLo6YPVTL0o8VKd5AyxopPYtot2twNMIAWNmDWdKfU)
我刚刚注册了一下 brevo,发现无法正常工作,即使通过去除用户名的@限制后mail.v2
库也无法工作。
看样子和其他 SMTP 服务有区别,等我有空研究一下,看看如何修复,感谢反馈。
用户名要去掉@后面的 只需要填smtp的username 发件人才要加@后面的
测试使用mxroute的邮局(发件用户名使用的是邮箱地址)尝试使用 465\25\587 端口,均报错无法正常发送测试邮件
用户名要去掉@后面的 只需要填smtp的username 发件人才要加@后面的
测试使用mxroute的邮局(发件用户名使用的是邮箱地址)尝试使用 465\25\587 端口,均报错无法正常发送测试邮件
用户名去掉@就好了?
当前推荐使用腾讯云 SES / QQ / Gmail 等 SMTP 服务商, mail.v2 库对这类特殊服务商支持不良好。
Greetings For @SHLE1 @emengweb ,
该问题已修复,同时依需要增加了部分功能。具体分析和其他相关信息可见我刚刚提交的 pr #213 。
目前该 pr 正在等待 merge ,您可以选择前往 https://github.com/Deeptrain-Community/chatnio/tree/Rakuyou_Dev 分支拉取最新代码或等待主分支合并。
Best Regards,
Junhai Deng