我有一个在 Azure 应用服务上运行的应用程序。到目前为止,我一直在使用 Gmail SMTP 服务器发送电子邮件,并且运行良好。电子邮件服务与文档中的类似,配置如下所示:
"ApplicationEmail": {
"EmailAddress": "template@gmail.com",
"Password": "temppassword",
"SmtpClient": "smtp.google.com",
"Port": "587",
"SSL": "true"
}
Run Code Online (Sandbox Code Playgroud)
现在我尝试切换到 ProtonMail 服务器,我在那里有一个带有自定义域的帐户,最终,我尝试重新配置设置,如下所示:
"ApplicationEmail": {
"EmailAddress": "administration@mydomain.de",
"Password": "randompassword",
"SmtpClient": "smtp.protonmail.com",
"Port": "587",
"SSL": "true"
}
Run Code Online (Sandbox Code Playgroud)
这当然不起作用,我在尝试发送电子邮件时收到此错误
System.Net.Mail.SmtpException: Failure sending mail.
System.Net.Sockets.SocketException (11001): No such host is known.
Run Code Online (Sandbox Code Playgroud)
我到处寻找解决方案,我发现的唯一方法是安装在后台本地运行并加密和解密电子邮件的 ProtonBridge,但这看起来不像一个选项,因为我无法将其集成到 Azure 应用服务中,因为就像 PaaS 而不是 Azure VM。如果我错了,请不要严格判断,我对 C#、Azure 还比较陌生:)
我的问题实际上是,如何从我的应用程序执行 Shell 命令。有一个类似的Post,但它显示了如何执行脚本文件并需要该文件的路径。
var process = new Process()
{
StartInfo = new ProcessStartInfo
{
FileName = command, // Path required here
Arguments = args,
RedirectStandardOutput = true,
RedirectStandardError = true,
UseShellExecute = false,
CreateNoWindow = true,
}
};
process.Start();
Run Code Online (Sandbox Code Playgroud)
为什么我想将命令作为字符串传递?
因为我想对其进行插值。否则,我将不得不创建一个带有一些输入参数的脚本。由于我不太擅长使用 Shell,所以我更喜欢简单的方法。
我想实现什么目标?
我正在使用Flutter Bloc库作为我的身份验证组件。在登录页面内,我有一些文本字段,例如用户名/密码,我也将与其他页面共享这些文本字段,例如注册页面、忘记密码、更改密码等。基本上,遵循DRY原则。
每个页面(注册、登录、忘记密码等)都有自己的 Bloc 组件。
我的问题 是我找不到将小部件与 Bloc 分离的方法。我希望能够根据使用的页面在有状态小部件中传递任何 BLoc 组件。
为了理解上面写的内容,让我们看一下我的代码。
login.dart登录页面构建方法中的一段代码。
Widget _loginForm(){
return BlocListener<LoginBloc, LoginState>(
listener: (context, state) {
final status = state.formStatus;
if (status is SubmissionFailed) {
...
}
},
child: Form(
key: _formKey,
child: Column(
children: [
// The reusable widget: Email input field.
BlocBuilder<LoginBloc, LoginState>(
builder:(context, state){
return emailInputField(context, state);
}
),
...
Run Code Online (Sandbox Code Playgroud)
现在让我们看一下emailInputField小部件
Widget emailInputField(BuildContext context, dynamic state) {
return TextFormField(
validator: (value) =>
state.isValidEmail …Run Code Online (Sandbox Code Playgroud) 我有一个我认为可以用 LINQ 解决的任务。问题是我对它很陌生,我只是无法正确实施我的想法。
问题:
我有两个字符串列表:
var list1 = new List<string>{ "item1", "item2" }; <br>
var list2 = new List<string>{ "item1", "item3", "item3", "item4" };
Run Code Online (Sandbox Code Playgroud)
目标是返回一个包含 list2 中未包含在 list1中的元素的新列表,( "item3", "item4" )
c# ×3
asp.net-core ×2
asp.net-mvc ×1
azure ×1
bloc ×1
dart ×1
email ×1
flutter ×1
flutter-bloc ×1
linq ×1
linux ×1
shell ×1
smtp ×1