Skickar ett mail från en klass, klassen instansieras av ett affärslager som i sin tur instansieras av asp.net sidan. Använder du ett objekt av typen System.Web.Mail?? Nä, jag använder system.snail.mail så klart... Jepp.. Luktar rättighetsproblem för din lokala SMTP-server.Security exception när jag skickar mail
Sidan har Integrated Security påslaget och ongen anonyoums access tillåtet. Vilket innebär att den som exekverar sidan gör det i contexten av en AD användare och inget annat.
När jag sedan ropar på SEND funktionen så kastar den en exception [1] som indikerar att det underliggande COM objektet inte kunde skapas.
Vad missar jag?
// Patrik
[1] {"Could not access 'CDO.Message' object." }
[System.Web.HttpException]: {System.Web.HttpException}
System.Object: {System.Web.HttpException}
_COMPlusExceptionCode: -532459699
_className: null
_exceptionMethod: null
_exceptionMethodString: null
_message: "Could not access 'CDO.Message' object."
_innerException: {"Exception has been thrown by the target of an invocation." }
_helpURL: null
_stackTrace: {System.Array}
_stackTraceString: null
_remoteStackTraceString: null
_remoteStackIndex: 0
_HResult: -2147467259
_source: null
_xptrs: 0
_xcode: -532459699
Message: "Could not access 'CDO.Message' object."
InnerException: {"Exception has been thrown by the target of an invocation." }
TargetSite: {System.Reflection.RuntimeMethodInfo}
StackTrace: " at System.Web.Mail.LateBoundAccessHelper.CallMethod(Object obj, String methodName, Object[] args)
at System.Web.Mail.CdoSysHelper.Send(MailMessage message)
at System.Web.Mail.SmtpMail.Send(MailMessage message)
at Cornerstone.email.Send() in C:\Documents and Settings\patlow\My Documents\Visual Studio Projects\Cornerstone\DataAccess\email.cs:line 33
at Cornerstone.Facades.DVDStudent.AddQuantity(Int32 Qty) in c:\documents and settings\patlow\my documents\visual studio projects\cornerstone\facades\student.cs:line 262"
HelpLink: ""
Source: "System.Web"
HResult: -2147467259Sv: Security exception när jag skickar mail
Annars så verkar det mest som om felet ligger i den mailskapande komponenten och inte i den kod som anropar.
//Mikael.NET (VB)Sv: Security exception när jag skickar mail
System.Web.Mail är en wrapper runt CDO COM objekten. Av någon anledning kan inte COM objektet skapas, jag antar att det har med antingen .NET security inställningarna eller ngt acces attribut på CDO objekts nycklar i registret.
Vilket som funkar syntaxen:
System.Web.Mail.SmtpMail.Send(_from, _to, _subject, _message);
men inte:
MailMessage email = new MailMessage();
email.To = _to;
email.From = _from;
email.Subject = _subject;
email.Body = _message;
// send the mail using a local smtp server.
SmtpMail.SmtpServer = "127.0.0.1";
SmtpMail.Send(email);Sv: Security exception när jag skickar mail
Är dock inte så bra på det.
Anledningen tillvarför jag frågade är annars för att det inte framgick och att det trots allt finns en del tokar som fortfarande använder externa mailhanteringkomponenter (dagens ord) trots att det numera finns trivligt och inbyggt.
//Mikael.NET