Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Using "SpecifiedPickupDirectory" in web.config will not save emails to specified folder #358

Open
atifaziz opened this issue Aug 25, 2015 · 5 comments

Comments

@atifaziz
Copy link
Member

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="[email protected]">
            <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.


Originally reported on Google Code with ID 358

Reported by [email protected] on 2014-04-08 08:23:55

@atifaziz
Copy link
Member Author

atifaziz commented Aug 25, 2015

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?


Reported by @atifaziz on 2014-04-08 20:01:00

  • Status changed: NeedsInfo
  • Labels added: Component-Mail

@atifaziz
Copy link
Member Author

{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.


Reported by [email protected] on 2014-04-08 20:05:53

@atifaziz
Copy link
Member Author

atifaziz commented Aug 25, 2015

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
  • 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?


Reported by @atifaziz on 2014-04-08 20:40:13

@atifaziz
Copy link
Member Author

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="[email protected]" password="password"
useSsl="true" 
      -->
    <errorMail
      from="[email protected]"
      to="[email protected]"
      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" <[email protected]>"
            >
        <specifiedPickupDirectory pickupDirectoryLocation="c:\temp\mail\" />
        <network
          host="mail.hostmaster.sk" port="465"
          userName="[email protected]" password="pwd"
          enableSsl="true"
          />
      </smtp>
    </mailSettings>
  </system.net>

Reported by balazs.hideghety on 2014-08-07 15:40:50

@atifaziz atifaziz removed the bug label Mar 8, 2016
@AdalyatNazirov
Copy link

It works for me as well

@atifaziz atifaziz changed the title Utilising the "SpecifiedPickupDirectory" in the web.config ELMAH will not save emails to the specified folder Using "SpecifiedPickupDirectory" in web.config will not save emails to specified folder Dec 15, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants