我需要从我的应用发送一封电子邮件,该电子邮件将在中等信任下运行。我当前的电子邮件发送代码在完全信任下正常工作会在中等信任下抛出SecurityException
[SecurityException: Request for the permission of type 'System.Net.Mail.SmtpPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.]
检查我的machine.config和相关文件显示我的SMTP访问仅限于Connect。
<SecurityClass Name="SmtpPermission" Description="System.Net.Mail.SmtpPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
和
<IPermission class="SmtpPermission" version="1" Access="Connect"/>
根据MSDN,Connect仅允许端口25上的请求。但Gmail服务器在端口587上工作。任何解决方法?建议?
答案 0 :(得分:4)
Gmail也接受25号端口; 你只需要25号港口; 它为我工作。
答案 1 :(得分:1)
您是否尝试过端口465。
http://support.google.com/mail/bin/answer.py?hl=en&answer=13287
您还可以创建网络服务,并将应用中的电子邮件发送到网络服务。然后完全信任地运行Web服务。
答案 2 :(得分:1)
在medium trust
中,是的,你被“困在”端口25.如果你可以访问(指的是你的网络主机)来创建自定义配置文件:
<IPermission class="SmtpPermission" version="1" Unrestricted="true" />
参考文献:
MSDN(Alvar Garcia) - SMTP problems when ASP.NET is not running in full-trust
Rick Strahl - SmtpClient in Medium Trust
答案 3 :(得分:1)
Web主机通常希望您将自己的SMTP服务器用于出站电子邮件。我不知道这是否会对您的特定情况造成问题,但如果没有,您应该联系主机并询问他们的SMTP服务器是什么,而不是尝试使用外部服务器。