mirror of https://github.com/abpframework/abp.git
csharpabpc-sharpframeworkblazoraspnet-coredotnet-coreaspnetcorearchitecturesaasdomain-driven-designangularmulti-tenancy
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Tree:
db4df4d8cf
10.0-ai-docs
8.0-prevent-stackoverflow-blazor
9.0-clear-breadcrumbs
Blazorise-Form-Submit
InboxProcessor-OutboxSender
RandomHelper
abp-release-post
abp-studio/issue/2891
abp-united-pre-merge
add-loading-component
advanced-features
article/angular-multithreading
article/resource-based-api
auto-merge-forward/rel-10.7-to-dev-34
auto-merge/prerel-8-2/2729
auto-merge/prerel-9-0/3134
auto-merge/prerel-9-0/3181
auto-merge/rel-10-0/4007
auto-merge/rel-10-0/4064
auto-merge/rel-10-0/4133
auto-merge/rel-10-1/4237
auto-merge/rel-10-2/4454
auto-merge/rel-10-2/4463
auto-merge/rel-10-4/4526
auto-merge/rel-10-5/4643
auto-merge/rel-10-5/4645
auto-merge/rel-10-5/4680
auto-merge/rel-10-5/4694
auto-merge/rel-7-4/2239
auto-merge/rel-7-4/2263
auto-merge/rel-8-0/2472
auto-merge/rel-8-0/2715
auto-merge/rel-8-0/2741
auto-merge/rel-8-1/2527
auto-merge/rel-8-3/3151
auto-merge/rel-9-0/3296
auto-merge/rel-9-1/3656
auto-merge/rel-9-2/3571
auto-merge/rel-9-2/3652
before-net10
blazor-full-stack-web-ui-interactiveauto
blazor-full-stack-web-ui-interactiveauto-modified
clear-breadcrumbs
cmskit-cache
codex/update-abp-ai-agent-deep-dive-title
copilot/allow-adding-public-website
copilot/sub-pr-24469
copilot/sub-pr-24636
copilot/sub-pr-24842
copilot/sub-pr-24889
copilot/sub-pr-24949
copilot/update-documentation-react-native
data-collection-code-review-2
data-collection-review-3
data-collection-review-5
dev
devnot-demo
dgnyldrm7-patch-1
docs-fix
docs-preview-8.3
docs-test-1
docs-unification
docs-unification-1-enhancements
docs/studio-2.2.1
docs/studio-2.2.2
docs/studio-2.2.3
docs/studio-2.2.4
document-abp-run-watch-command
documentation/#20827-modular-monolith-application
documentation/20827
documentation/abp-extensible-form-doc
ebicoglu-patch-1
ebicoglu-patch-2
ebicoglu-patch-3
enisn-patch-1
enisn/blobstoring-bunnycdn
feat/#23955
feat/ai-assistant-article-enhancements
feat/dynamic-form-component
feat/typescript-on-mvc
feature/#19594
feature/#23180
feature/ai-chat-history-docs
feature/logo-provider
feature/ssr-migration-schematic
fix-admin-docs-test
fix/#20241
fix/#23795
fix/21899-resource-permission-refresh
fix/missing-dependency
gizem/HTML-encode-TagHelper-xss-test
gizem/security-logs
halil-presentation-2024-05
hybrid-ui
hybrid-ui-embedding
ingress-nginx/ingress-nginx
issue-#23231
issue-#3417
issue-#3591
issue-#3596
issue-#6679
issue-#6768
issue-18421
issue-19307
issue-20436
issue-20924-2
issue-21015
issue-22408
issue-23113
issue-23231
issue-23286
issue-24272
issue-24438-test
issue-24635-test
issue-24672
issue-24674
issue-24918-2
issue-2884
issue-3384/L
issue-3596
issue-3870/L
issue-5131
issue-5384
issue-remove-abp-io-localization
issue-switch-to-nightly-cpm-support
issue-volo-21285
issue-vs-7809
issue/22675
issue/25581
issue/abp-ng-upgrade
issue/assign-available-port-for-suite
issue/updateAngularInstallers
issut/7552
jenkins-abp-release-308
leptonx-versions
local-ref-basic-theme
maliming/drop-jquery-migrate
maliming/permission-batch-update
mansur-vs-internal-#7864
mauiglobalbundle
migrating-abp-packages/core
migrating-abp-packages/identity
migrating-abp-packages/setting-management
migrating-abp-packages/tenant-management
migrating-abp-packages/theme-shared
patch-1-engincanv
pr/2526
pr/6814
prerel-9.0
rel-1.0
rel-1.1
rel-10.0
rel-10.1
rel-10.2
rel-10.3
rel-10.4
rel-10.5
rel-10.6
rel-10.7
rel-2.0
rel-2.1
rel-2.2
rel-2.3
rel-2.4
rel-2.5
rel-2.6
rel-2.7
rel-2.8
rel-2.9
rel-3.0
rel-3.1
rel-3.2
rel-3.3
rel-4.0
rel-4.1
rel-4.2
rel-4.3
rel-4.4
rel-5.0
rel-5.1
rel-5.2
rel-5.3
rel-6.0
rel-7.0
rel-7.1
rel-7.2
rel-7.3
rel-7.4
rel-8.0
rel-8.1
rel-8.2
rel-8.3
rel-9.0
rel-9.1
rel-9.2
rel-9.3
remove-deprecateds
return-code-vs-exception-article
revert-18876-blazor-full-stack-web-ui
revert-20264-EngincanV/cli-old-vs-new
salihozkara-patch-1
salihozkara-patch-2
salihozkara/ImproveBundleFile
salihozkara/blazorise-validation-message
salihozkara/complex-property
salihozkara/fix-image
salihozkara/fixDatePicker
salihozkara/low-code-107-feature-docs
salihozkara/lowcode-page-interceptor-schemas
salihozkara/mapperly-test
studio-custom-command-doc
studio-document-start-and-wait
studio-linux-community-article
taskever--3b6w1uy1
template-config-provider
test-branch-24299
test/issue-25858
update-cli-docs
update-doc
update-latest-versions-7.4.3
update-latest-versions-8.1.2
update-latest-versions-8.1.5
update-latest-versions-8.2.3
update-latest-versions-9.0.7
update-latest-versions-9.1.0
update-upgrade-cod-23-08-2024
upgrade-command-doc
volobox--bhsygwll
volobox--dcqsmt9p
vsInternal-viewcChangeHistory-localization
vsinternal-7565
0.10.0
0.11.0
0.12.0
0.13.0
0.14.0
0.15.0
0.16.0
0.17.0.0
0.18.0
0.18.1
0.19.0
0.20.0
0.20.1
0.21.0
0.22.0
0.3.7
0.4.0
0.4.1
0.4.1.1
0.5.0
0.6.0
0.6.1
0.7.0
0.7.1
0.8.0
0.9.0
1.0.0
1.0.2
1.1.0
1.1.1
1.1.2
10.0.0
10.0.0-rc.1
10.0.0-rc.2
10.0.0-rc.3
10.0.1
10.0.2
10.0.3
10.1.0
10.1.0-rc.1
10.1.0-rc.2
10.1.0-rc.3
10.1.1
10.2.0
10.2.0-rc.1
10.2.0-rc.2
10.2.0-rc.3
10.2.0-rc.4
10.2.1
10.3.0
10.3.0-rc.1
10.3.0-rc.2
10.4.0
10.4.0-rc.1
10.4.0-rc.2
10.4.1
10.5.0
10.5.0-rc.1
10.5.0-rc.2
10.5.0-rc.3
10.5.0-rc.4
10.6.0
10.6.0-rc.1
10.6.0-rc.2
10.6.0-rc.3
10.7.0-rc.1
10.7.0-rc.2
10.7.0-rc.3
10.7.0-rc.4
2.0.0
2.0.1
2.1.0
2.1.1
2.2.0
2.2.1
2.3
2.3.0
2.4.0
2.4.1
2.5.0
2.6.0
2.6.1
2.6.2
2.7.0
2.8.0
2.9.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
3.0.5
3.1.0
3.1.0-rc.1
3.1.0-rc.2
3.1.0-rc.3
3.1.0-rc.4
3.1.1
3.1.2
3.2.0
3.2.0-rc.1
3.2.0-rc.2
3.2.1
3.3.0
3.3.0-rc.1
3.3.0-rc.2
3.3.1
3.3.2
4.0.0
4.0.0-rc.1
4.0.0-rc.2
4.0.0-rc.3
4.0.0-rc.4
4.0.0-rc.5
4.0.1
4.0.2
4.1.0
4.1.0-rc.1
4.1.0-rc.2
4.1.1
4.1.2
4.2.0
4.2.0-rc.1
4.2.0-rc.2
4.2.1
4.2.2
4.3.0
4.3.0-rc.1
4.3.0-rc.2
4.3.1
4.3.2
4.3.3
4.4.0
4.4.0-rc.1
4.4.0-rc.2
4.4.1
4.4.2
4.4.3
4.4.4
5.0.0
5.0.0-beta.1
5.0.0-beta.2
5.0.0-beta.3
5.0.0-rc.1
5.0.0-rc.2
5.0.1
5.0.2
5.1.0
5.1.1
5.1.2
5.1.3
5.1.4
5.2.0
5.2.0-rc.1
5.2.0-rc.2
5.2.1
5.2.2
5.3.0
5.3.0-rc.1
5.3.0-rc.2
5.3.0-rc.3
5.3.1
5.3.2
5.3.3
5.3.4
5.3.5
6.0.0
6.0.0-rc.1
6.0.0-rc.2
6.0.0-rc.3
6.0.0-rc.4
6.0.0-rc.5
6.0.1
6.0.2
6.0.3
7.0.0
7.0.0-rc.1
7.0.0-rc.2
7.0.0-rc.3
7.0.0-rc.4
7.0.0-rc.5
7.0.0-rc.6
7.0.1
7.0.2
7.0.3
7.1.0
7.1.0-rc.1
7.1.0-rc.2
7.1.0-rc.3
7.1.1
7.2.0-rc.1
7.2.0-rc.2
7.2.1
7.2.2
7.2.3
7.3.0
7.3.0-rc.1
7.3.0-rc.2
7.3.0-rc.3
7.3.1
7.3.2
7.3.3
7.4.0
7.4.0-rc.1
7.4.0-rc.2
7.4.0-rc.3
7.4.0-rc.4
7.4.0-rc.5
7.4.1
7.4.2
7.4.3
7.4.4
7.4.5
8.0.0
8.0.0-rc.1
8.0.0-rc.2
8.0.0-rc.3
8.0.1
8.0.2
8.0.3
8.0.4
8.0.5
8.0.6
8.1.0
8.1.0-rc.1
8.1.0-rc.2
8.1.0-rc.3
8.1.0-rc.4
8.1.1
8.1.2
8.1.3
8.1.4
8.1.5
8.2.0
8.2.0-rc.1
8.2.0-rc.2
8.2.0-rc.3
8.2.0-rc.4
8.2.0-rc.5
8.2.1
8.2.2
8.2.3
8.3.0
8.3.0-rc.1
8.3.0-rc.2
8.3.0-rc.3
8.3.1
8.3.2
8.3.3
8.3.4
9.0.0
9.0.0-rc.1
9.0.0-rc.2
9.0.0-rc.3
9.0.1
9.0.2
9.0.3
9.0.4
9.0.5
9.0.6
9.0.7
9.0.8
9.1.0
9.1.0-rc.1
9.1.0-rc.2
9.1.0-rc.3
9.1.1
9.1.2
9.1.3
9.2.0
9.2.0-rc.1
9.2.0-rc.2
9.2.0-rc.3
9.2.0-rc.4
9.2.1
9.2.2
9.2.3
9.2.4
9.3.0
9.3.0-rc.1
9.3.0-rc.2
9.3.0-rc.3
9.3.0-rc.4
9.3.1
9.3.2
9.3.3
9.3.4
9.3.5
9.3.6
9.3.7
archive/EngincanV/react-docs-updates
archive/abp-plugin
archive/auto-merge/rel-7-4/2276
archive/auto-merge/rel-8-2/2851
archive/auto-merge/rel-9-0/3304
archive/issue-23231-v2
v0.3.1
v0.3.2
v0.3.2.1
v0.3.2.2
v0.3.3
v0.3.3.1
v0.3.3.2
v0.3.4
v0.3.5
v0.3.6
v0.6.2
v1.1.1
v9.2.0-preview
${ noResults }
2.9 KiB
2.9 KiB
短信发送
ABP 框架提供一个用于发送短信的抽象, 有如下优点:
- 在不改变应用程序代码的情况下, 你可以非常容易地切换短信发送提供者(提供商).
- 如果你想创建可重用的应用程序模块, 则不需要假设短信是如何发送的.
安装
建议你使用ABP CLI来安装这个包.
使用Abp CLI
在项目所在目录(.csproj 文件所在目录)打开命令行工具, 输入如下命令:
abp add-package Volo.Abp.Sms
手动安装
如果你想要手动安装;
- 添加 Volo.Abp.Sms NuGet 包到你的项目中:
Install-Package Volo.Abp.Sms
- 在你的模块的依赖列表中添加对模块
AbpSmsModule的依赖:
[DependsOn(
//...其它依赖
typeof(AbpSmsModule) //添加新模块的依赖
)]
public class YourModule : AbpModule
{
}
发送短信
注入 ISmsSender, 并使用SendAsync方法来发送短信.
例子:
using System.Threading.Tasks;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Sms;
namespace MyProject
{
public class MyService : ITransientDependency
{
private readonly ISmsSender _smsSender;
public MyService(ISmsSender smsSender)
{
_smsSender = smsSender;
}
public async Task DoItAsync()
{
await _smsSender.SendAsync(
"+012345678901", // 目标手机号
"This is test sms..." // 消息内容
);
}
}
}
示例中给定的SendAsync方法是一个扩展方法, 用于发送带有基本参数的短信.此外, 你也可以传入一个有如下属性的SmsMessage对象:
PhoneNumber(string):目标手机号Text(string):短信消息内容Properties(Dictionary<string, string>):用于传入自定义参数的键值对
NullSmsSender
NullSmsSender是ISmsSender的一个默认实现.它写入内容到日志中, 而不是真正地发送短信.
开发时, 你不想真正地发送短信时, 这个类是非常有用的.然而, 若你想真实发送短信, 你需要在你的应用程序代码中实现ISmsSender接口.
实现ISmsSender接口
通过创建一个实现ISmsSender接口的类, 你可以很容易创建你自己的短信发送实现, 如下所示:
using System.IO;
using System.Threading.Tasks;
using Volo.Abp.Sms;
using Volo.Abp.DependencyInjection;
namespace AbpDemo
{
public class MyCustomSmsSender : ISmsSender, ITransientDependency
{
public async Task SendAsync(SmsMessage smsMessage)
{
// 发送短信
}
}
}
More
ABP Commercial提供Twilio的集成包, 用于使用Twilio service来发送短信.