我尝试发送System.Net.Mail.MailMessage带System.Net.Mail.Attachment.
附件名称是"Счёт-договор№4321от4июля.pdf"
附件创建代码:
var nameEncoding = Encoding.UTF8;
return new System.Net.Mail.Attachment(new MemoryStream(bytes),
MessageBodiesHelpers.EncodeAttachmentName(fileName, nameEncoding),
attachment.MediaType)
{
TransferEncoding = TransferEncoding.Base64,
NameEncoding = nameEncoding
};
Run Code Online (Sandbox Code Playgroud)
代码内容MessageBodiesHelpers.EncodeAttachmentName取自https://social.msdn.microsoft.com/Forums/en-US/b6c764f7-4697-4394-b45f-128a24306d55/40-smtpclientsend-attachments-mit-umlauten-im-dateinamen?forum=dotnetframeworkde
如果我将该附件发送到gmail或ms exchange,则附件名称已成功解码.但!
如果我将附件发送到icloud,那么我会得到"???? - ???????№4321от4????.pdf"
邮件附件标题:
来自ms exchange:
Content-Type: application/pdf;
name="=?utf-8?B?0KHRh9GR0YIt0LTQ?==?utf-8?B?vtCz0L7QstC+0YAg?==?utf-8?B?4oSWNDMyMSDQvtGC?==?utf-8?B?IDQg0LjRjtC70Y8u?==?utf-8?B?cGRm?="
Content-Transfer-Encoding: base64
Content-Disposition: attachment
Run Code Online (Sandbox Code Playgroud)
来自icloud:
Content-Transfer-Encoding: BASE64
Content-Type: APPLICATION/PDF;
name="????-??????? =?utf-8?B?4oSWNDMyMSDQvtGC?= 4 ????.pdf"
Run Code Online (Sandbox Code Playgroud)
如何格式化icloud的名称?
UPD
如果我将消息从outlook(ms exchange)转发到icloud,则附件名称已成功解码.头:
Content-Transfer-Encoding: BASE64
Content-Disposition: ATTACHMENT;
size=200702;
modification-date="Mon, 04 Jul 2016 13:40:22 GMT";
filename*=utf-8''%D0%A1%D1%87%D1%91%D1%82%2D%D0%B4%D0%BE%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%20%E2%84%964321%20%D0%BE%D1%82%204%20%D0%B8%D1%8E%D0%BB%D1%8F.pdf;
creation-date="Mon, 04 Jul 2016 13:40:22 GMT"
Content-Type: …Run Code Online (Sandbox Code Playgroud) 命令
$ docker-machine ls
Run Code Online (Sandbox Code Playgroud)
给我
NAME ACTIVE DRIVER STATE URL SWARM
default virtualbox Timeout
Run Code Online (Sandbox Code Playgroud)
如果我在Docker Toolbox中运行start.sh,我会得到
## .
## ## ## ==
## ## ## ## ## ===
/"""""""""""""""""\___/ ===
~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ / ===- ~~~
\______ o __/
\ \ __/
\____\_______/
host is not running
docker is configured to use the default machine with IP
Run Code Online (Sandbox Code Playgroud)
这个州意味着什么?
在.NET Thread类中有静态方法Yield.
我在Thread的coreclr实现中看到了这个方法.
但是文档不包含Method描述.
此外,.NET CLI(dotnet build)无法使用该方法调用编译代码.
为什么?
upd
运行时:
1.0.0-rc1-update1 coreclr x64 darwin
project.json
{
"version": "1.0.0-*",
"compilationOptions":
{
"emitEntryPoint": true
},
"dependencies":
{
"NETStandard.Library": "1.0.0-rc2-*",
"System.Threading": "4.0.11-rc3-*"
},
"frameworks": {
"dnxcore50": {}
}
}
Run Code Online (Sandbox Code Playgroud)
upd2
我不会使用Thread.Yield();
我只是想知道为什么coreclr中缺少某些框架功能.