SamehMohamedEl-Sayed / elmah

Automatically exported from code.google.com/p/elmah
Apache License 2.0
0 stars 0 forks source link

Utilising the "SpecifiedPickupDirectory" in the web.config ELMAH will not save emails to the specified folder #358

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
Steps that will reproduce the problem:

1. Add the following section to your web.config in place of any other similar 
section:

<system.net>
    <mailSettings>
        <smtp deliveryMethod="SpecifiedPickupDirectory" from="error@domain.co.uk">
            <specifiedPickupDirectory pickupDirectoryLocation="C:\{Path}\App_Data\"/>
        </smtp>
    </mailSettings>
</system.net>

2. Trigger an exception that was previously being emailed by Elmah. 

I would expect the email that I would have received to be saved in the location 
specified in the web.config. Instead, the error is logged but no email is 
saved. I have tried the App_Data path as well as a new directory in the root of 
my C:\ drive, both with no success. I have set up a simple email method 
separate from ELMAH and this does save a copy of the email message to the 
specified directory. 

Original issue reported on code.google.com by m...@marcpell.com on 8 Apr 2014 at 8:23

GoogleCodeExporter commented 9 years ago
Is the {Path} replaced at runtime? I don't think .NET Framework recognises and 
replaces the `{Path}` token. 
Does the account under which the web site with ELMAH running have permissions 
to write to C:\ and App_Data of the web site? I'm assuming that the separate 
test your ran was under a different identity that did have permissions?

Original comment by azizatif on 8 Apr 2014 at 8:01

GoogleCodeExporter commented 9 years ago
{path} is just a manual replacement to hide my local path in my description 
here rather than the actual path which I am confident is correct as sending 
normal emails works just fine. The manual test was performed using them same 
account into the app_data folder of the app and works as expected but then 
triggering an exception doesn't result in an email being saved. Reverting the 
emails back to actually sending and triggering the same exception results in 
ELMAH sending an email successfully so it is just the saving of an email to the 
path via ELMAH that isn't working for me. 

Original comment by m...@marcpell.com on 8 Apr 2014 at 8:05

GoogleCodeExporter commented 9 years ago
Have you tried downloading and running the demo app that also writes error 
mails to a local directory? Try the following:

- Download the sources of the 1.2 SP2 release:
  http://code.google.com/p/elmah/downloads/detail?name=ELMAH-1.2-sp2-src.zip
- Unzip the archive
- From the unzipped directory, run demo.cmd
- When the demo web home page appears, generate errors with the help of the 
instructions on the page
- On the same page, you'll find a link to where the mails are being saved, 
which will most probably be along the lines of http://localhost:54321/Mails/

Do you see error mail (EML) files being produced by the demo web?

Original comment by azizatif on 8 Apr 2014 at 8:40

GoogleCodeExporter commented 9 years ago
I'm sure that pickupDirectory works, i have it configured so and there's no 
problem. I prefer to keep setting in system.net, cause so i do not need to 
configure my mail client + elmah - i do not like duplicities :D

<elmah>
    <security allowRemoteAccess="true" />
    <errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="FinIS" />
    <!--
      NOTE: additional errorMail settings if we want to have other values than in system.net/mailSettings/smtp/host
      smtpServer="mySmtp" smtpPort="25" userName="errors@email.com" password="password" useSsl="true" 
      -->
    <errorMail
      from="sender@mail.sk"
      to="recipient@mail.sk"
      subject="ELMAH Error from my system"
      async="true" />

 <system.net>
    <mailSettings>
      <!-- NOTE: set delivery method to: Network to begin send mails -->
      <smtp deliveryMethod="SpecifiedPickupDirectory"
            from=""Your name" <from@mail.sk>"
            >
        <specifiedPickupDirectory pickupDirectoryLocation="c:\temp\mail\" />
        <network
          host="mail.hostmaster.sk" port="465"
          userName="sender@mail.sk" password="pwd"
          enableSsl="true"
          />
      </smtp>
    </mailSettings>
  </system.net>

Original comment by balazs.h...@gmail.com on 7 Aug 2014 at 3:40