Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从C#程序创建电子邮件并通过邮件发送到Gmail_C#_Email_Gmail - Fatal编程技术网

从C#程序创建电子邮件并通过邮件发送到Gmail

从C#程序创建电子邮件并通过邮件发送到Gmail,c#,email,gmail,C#,Email,Gmail,我正在创建这样一封电子邮件: System.Diagnostics.Process.Start( string.Format("mailto:{0}?&subject=Test&body={1}", string.Join(", ", emails), string.Join("\n", temp.ToArray()) ) ); 然而Gmail说链接太长了。我已经读过了,如果我通过邮件发送这个,似乎可以解决我的问题,因为16K

我正在创建这样一封电子邮件:

System.Diagnostics.Process.Start(
    string.Format("mailto:{0}?&subject=Test&body={1}", 
        string.Join(", ", emails), 
        string.Join("\n", temp.ToArray())
    )
);
然而Gmail说链接太长了。我已经读过了,如果我通过邮件发送这个,似乎可以解决我的问题,因为16K对我来说就足够了。有可能做到这一点吗?如何做到

更新我在示例中提到了Gmail的案例,但我需要任何默认的电子邮件软件来处理这个问题。例如,如果用Outlook打开,我也需要它工作


问题更新/澄清我如何使用POST而不是GET(因为GET的限制太短)发送请求(如上)

我认为您有两种选择

一种是通过将
&attachment=
添加到
mailto
URL,将消息正文创建为附件。一些电子邮件客户端支持这一点,也许将
mailto
链接转换为GMail请求的谷歌代码也支持这一点


如果上述方法不起作用,并且你确定你只想使用GMail,那么你需要直接切换到与服务器的通信。您可以使用GMail SMTP服务器。在这里阅读他们对身份验证的支持:。

尝试
WebClient
及其方法。在我更新我的问题后,我认为WebClient不再适合我的需要,因为我必须指定确切的url。我说的对吗?如果16K还不够,也许你可以用附件代替身体?不,16K对我来说就足够了。我只是不知道如何发送这个帖子。你提供的链接是谷歌图表,它与mailto链接无关。GET和POST是HTTP动词,您无法控制Google通知程序如何将mailto协议转换为HTTP请求。问题是,我希望所有POSIBilet都能使用它。到gmail,到outlook,到…我们实际上决定允许立即发送,而不是允许中途修改某些内容,因此我们使用了smtp客户端。无论如何,依恋似乎是一个不错的想法,因此我将此标记为一个解决方案。谢谢:)