changemakerstudios / papercut-smtp Goto Github PK
View Code? Open in Web Editor NEWPapercut SMTP -- The Simple Desktop Email Server
Papercut SMTP -- The Simple Desktop Email Server
I'd like the option to sort the inbox in descending order (newest on top)
This prevents me from scrolling down
As per title, attempting to download the v4.8.0.3 release zip file, Kaspersky reports Trojan.MSIL.Crypt.dgxp virus. They are not the only vendor to do so.
Possibly a false-positive, but not one I am going to override.
Bcc functionality seems to be missing.
It would be great to get multiple emails for each bcc recipient for testing purposes. Or alternatively have a label that says something like "this email was also sent to: [list_of_email].
Here is a log with multiple RCPT TO which are ignored right now:
220 myhost
EHLO myhost
250-myhost
250-8BITMIME
250 OK
RSET
250 OK
MAIL FROM: <a@b>
250 <a@b> OK
RCPT TO: <c@d>
250 <c@d> OK
RCPT TO: <e@f>
250 <e@f> OK
RCPT TO: <g@h>
250 <g@h> OK
DATA
354 Start mail input; end with <CRLF>.<CRLF>
.
250 OK
Forcing disconnection from SMTP server.
QUIT
221 Goodbye!
It'd be nice if rules were implemented in a way that allowed them to change the server response to something besides "250 OK". That'd make it easier to test how programs respond to various errors.
For example, I'd like to test cases where the SMTP server rejects a message due to attachment sizes being too large. I tried implementing a new rule that would have the intended effect, but found that the rules can not alter the response
Edit: Obviously if I'm mucking in the code I can have it return anything I want, but it'd be nice if it was a built in feature of the rules
I'm a complete novice. Just wondering how I can run this on a Windows server that doesn't have an internet connection.
I have an email which uses document.querySelectorAll.
This function is not supported in the internal browser used by Papercut it seems.
If it doesn't crash immediately, restart Papercut.
To fix the crash, you have to delete the eml file in %AppData%\Papercut.
the email header:
From: example [email protected]
Date: Wed, 27 Jul 2016 11:50:48 +0200
Subject: Testmail for querySelectorAll
Message-Id: SC8BW9DOTYT4.3OG558UIEFW53@PC13
To: example [email protected]
MIME-Version: 1.0
Content-Type: text/html; charset=utf-8
Bcc: [email protected]
the email content:
`<title>Testmail for querySelectorAll</title>
Testmail for querySelectorAll.
When I need to mess around / edit an email, I right click and choose "Open containing folder". However that shows me all the emails, which have guids for filenames. So I can't easily find the one I need without opening lots of them randomly until I find the correct one.
Would be better if it behaved in the expected way, which is that if I highlight an email and then "Open containing folder", it will 1) open the folder and 2) select that email in the folder list.
I had to add about:internet
to my Trusted Sites in IE's security options to prevent the application from crashing immediately.
I don't know if this is an "issue" per se, but I wanted it to be linked to the project for anyone else who ran into the same problem.
We are running Papercut as a service. Once in a while we are seeing a failed send on the smtp client side when disposing our SmtpClient instance with the error:
System.IO.IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host. ---> System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host
at System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)
at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
--- End of inner exception stack trace ---
at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
at System.Net.Mail.SmtpPooledStream.Dispose(Boolean disposing)
at System.IO.Stream.Close()
at System.Net.ConnectionPool.Destroy(PooledStream pooledStream)
at System.Net.ConnectionPool.ForceCleanup()
at System.Net.ConnectionPoolManager.CleanupConnectionPool(ServicePoint servicePoint, String groupName)
The papercut log seems to indicate a connection was closed for being idle, but i'm not sure how we could have had it open for any great length of time:
2017-05-15 13:35:19.024 -07:00 [Information] Session timeout, disconnecting 32556
Looking at the logic, I believe the comparison check for idle connections in ConnectionManager is incorrect
// Loop through the connections
foreach (int key in keys)
{
// If they have been idle for too long, disconnect them
if (DateTime.Now < _connections[key].LastActivity.AddMinutes(20))
{
Logger.Information(
"Session timeout, disconnecting {ConnectionId}",
_connections[key].Id);
_connections[key].Close();
}
}
The comparison should be DateTime.Now > _connections[key].LastActivity.AddMinutes(20)
, i.e. close the connection if the current time is more than 20 minutes after the last activity. I can submit a pull request later on.
If you were to make a change in Papercut.Service.json and restarted the service while a papercut client is running, the new changes do not take effect and instead is overwritten by the client's cached configuration.
I'm running on Win 2012R2, Papercut 4.8.0, both running in separate folders.
The Papercut page at http://papercut.codeplex.com/ says: "Moved source to GitHub. Releases will stay on Codeplex due to ClickOnce." The "current" download the CodePlex page is v4.5 dated March 2016.
It looks like the current product description and installers are on now GitHub. It might be best to remove everything from CodePlex and only leave a message directing people to GitHub.
Am I missing some obvious thing or your application doesn't present mail subject in right encoding?
No matter what encoding parameter I setup in my application (UTF-8, ASCII, UNICODE) during mail sending in Papercut (in subject field) I see a question mark ?
in place where typical characters for my language should be. Example ęóąśłżźćń
. Mail body with these characters is shown properly.
Added Choco install for the service
It's Really good to have web interface similar to windows interface.
Why I am looking for it?
I am in need to have local smtp server with web interface to check the application mail which some time need interaction and as i not have any SMTP relay server so looking forward to have web interface which can be hosted in IIS or PHP and access Papercut service to see the mails from anywhere
I'm attempting to use in a single server SharePoint farm and it's not working. The log says:
4/6/2017 4:34:00 PM [Warning] Failed to End Receive on Async Socket
4/6/2017 4:33:38 PM [Information] Server Ready - Listening for New Connections "0.0.0.0":25
4/6/2017 4:33:38 PM [Information] Starting Server Smtp
Just noticed this with the new Theme feature -- the border doesn't look right.
Is there any way to have the Papercut Service run somewhere else in the environment, and have the client connect to it remotely?
Is it possible to install the Service when using the ClickOnce download, or do you have to use the ZIP?
If the latter, this should probably be clarified someplace in the documentation.
If you've set the Message Sort Order to 'Ascending' the newest message is always at the bottom, so this anomaly doesn't appear. However, when you set the Message Sort Order to 'Descending' the 'current message is set to the bottom which is now the oldest message. Two times this is a problem is:
Your fix caused another issue documented here: https://papercut.codeplex.com/workitem/9884
I use PaperCut to display email notifications from a SharePoint dev environment.
The emails are received as expected, but the HTML body is not displayed.
When I open the eml with Outlook everything looks good.
I started the application with ClickOnce, therefore I should use the latest version.
Thanks for your support!
Annotations should support Java 8 to avoid warnings when used in projects that use Java 8
Warning:Supported source version 'RELEASE_7' from annotation processor 'ie.stu.papercut.compiler.AnnotationProcessor' less than -source '1.8'
Hi,
Although clickonce is a nice way to distribute, our firewalls are blocking these requests, so I can't install the tool.
Is there also a standalone version I can download somewhere?
Tim
I know you don't want to build a full-on mail client, but some way to mark items as read/unread would be nice.
Sometimes I receive multiple errors at once and I have to click through the mails and look at their timestamp to see which are from the latest test.
(subjects won't differ that much if you are testing the same thing a lott)
I often find myself activating Papercut on a remote machine and try to leave it so other users can test. That is not possible if I log out or my sessions gets terminated.
Is it possible to run Papercut as a service? (So that multiple users over different sessions access the same Papercut instance?
Nice job with this utility, well done!
Documentation says:
If manual confiugration is needed, the configuration file for Papercut.Service can be found in the same directory as the Papercut.Service.exe. Papercut.Service.json contains the configuration with comments outlining options.
Looking for the options in the file, but the file is empty, both in the download and in the source.
More specifically, I'd like to set logging options for Seq. For example, server, port, log level, and api key.
Thank you!
I need to test using UTF8 aka characters like the following in local ---- suzànne@hotmail.com, does PaperCut support this?
Hi! I'm trying to have a VM (local) vagrant machine use Papercut on my host machine. But Papercut is not sensing any incoming mails. I've tried disabling the firewall completely, no difference.
Does Papercut support this? I'm probably doing something wrong. Would appreciate pointers!
I was just testing emails where I send a URL with an encoded Base64 String in the query parameters.
E.g: http://localhost:8080/test?key=NmAUEbNrjNz2kY33VYZvCuVlq4aA8PpA5%2BLOGQ8F72w%3D
Notice the encoded %2B (+) and %3D (=)
When inspected in Papercut, the body of the email contains a link with the href parameter as stated above with escaped special characters.
When I click on the link inside Papercut though, it opens my browser at:
http://localhost:8080/test?key=NmAUEbNrjNz2kY33VYZvCuVlq4aA8PpA5+LOGQ8F72w=
As you can see, the "+" and "=" have been URL-decoded.
Is this the appropriate behavior or is it OK to report this is a bug?
Was using this during a load test I was doing as to not send actual emails out anywhere. It started throwing "The server response was: Syntax error, command unrecognized" exceptions after about 12k emails.
Howdy,
We received a report of a possible malware in the latest version of the package you have at https://chocolatey.org/packages/papercut/4.8.0.1.
I will just copy in some text from the report:
Kaspersky anti-virus detects it and describes it as "Trojan.MSIL.Crypt.dayr"
I did a little investigation regarding this, with the original VirusTotal scans from Feb 16, 2017 which turned up no issues: https://www.virustotal.com/en/file/9b109d72e746f1794b1e43dfec8778b27fb6c7722ca87579acd5bc0ed53b1c21/analysis/ and https://www.virustotal.com/en/file/ffb1d9acaf4cef4d45cbefb68129c8a8c116d3da2ba1af1e08ded0908e631c8f/analysis/
And after receiving the report today, I reran the VirusTotal scans to see if the AV scanners are able to pick up anything additional since this was a month and a half ago. Still waiting on the results to come back from that.
Have you had any other reports of this kind of thing?
Microsoft just announced the shutdown of codeplex which is where papercut still uses the releases.
There are releases on github as well, but the clickonce releases aren't going to work by the end of the year.
I can't see anyway of changing the config file to specify the port and output directory. My config:
<?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <section name="Papercut.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" /> </sectionGroup> </configSections> <userSettings> <Papercut.Properties.Settings> <setting name="IP" serializeAs="String"> <value>Any</value> </setting> <setting name="Port" serializeAs="String"> <value>25</value> </setting> <setting name="MessagePaths" serializeAs="String"> <value>%ApplicationData%\Papercut;%BaseDirectory%;%BaseDirectory%\Incoming</value> </setting> </Papercut.Properties.Settings> </userSettings> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="Topshelf" publicKeyToken="b800c4cfcdeea87b" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-3.1.122.0" newVersion="3.1.122.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Autofac" publicKeyToken="17863af14b0044da" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-3.4.0.0" newVersion="3.4.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Reactive.Interfaces" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-2.2.5.0" newVersion="2.2.5.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Reactive.Core" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-2.2.5.0" newVersion="2.2.5.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Reactive.Linq" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-2.2.4.0" newVersion="2.2.4.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-2.2.29.0" newVersion="2.2.29.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Serilog" publicKeyToken="24c2f752a8e58a10" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-1.3.0.0" newVersion="1.3.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Serilog.FullNetFx" publicKeyToken="24c2f752a8e58a10" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-1.3.0.0" newVersion="1.3.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-2.6.10.0" newVersion="2.6.10.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Threading.Tasks" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-2.6.10.0" newVersion="2.6.10.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="MimeKit" publicKeyToken="bede1c8a46c66814" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-1.16.0.0" newVersion="1.16.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="BouncyCastle" publicKeyToken="eec3120e64a3fcba" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-1.8.5653.35064" newVersion="1.8.5653.35064" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.IO" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-2.6.10.0" newVersion="2.6.10.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="BouncyCastle" publicKeyToken="0e99375e54769942" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-1.8.0.0" newVersion="1.8.0.0" /> </dependentAssembly> </assemblyBinding> </runtime> </configuration>
Curious if anyone else has this problem. I keep PaperCut running all the time (Love the Product). However, if I go to click on emails it does display. I have to exit and restart.
This is wonderful app. Just thinking if there is an option available to print the email. Sometime client's demand a printed copy for review during the development process.
I'm using SendEmail to send emails. That program records the time in UTC, but suffixes it with "+0000" in the headers, indicating what it is doing. Papercut displays this (including the +0000) as-is, although changing the display format. It would be great if this was translated to local time, according to what is set in locally on the machine where it's displayed.
Also here:
https://papercut.codeplex.com/workitem/9878
I have emails with links that are very long, like this:
If I look at the body of the email in Papercut the links looks ok but when I click the link and it opens in the browser, the only part that is opened looks like this:
So for some reason papercut cuts of a major part of the url - is it only me or is this an issue that can be reproduced?
For example ISO-8859-1 characters å, ä and ö (codepoints 229, 228, 246) gets all interpreted in UTF-8 and thus are getting replaced with Unicode Replacement Character (\uFFFD), seen as � in Message tab in Papercut.
Both the message body and attachment contents were "åäö" (and message includes information which charset should be used) when the message was sent and it works with real SMTP server. Attached the .eml file from Papercut's folder (Github required the additional .txt extension) 20160210-144849-74ba54.eml.txt shows that faulty encoding occurs before Papercut saves the .eml file.
Hi
I'm running the latest version of the Papercut GUI and Service.
When opening the GUI all e-mails are shown twice (duplicated).
The following error is received when attempting to receive an email with duplicate recipients such as the same person in the to field and the bcc, with different cases in the email such as to: "[email protected]", bcc:"[email protected]"
"[Warning] Failed to End Receive on Async Socket"
The following is the stack trace,
" at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)\r\n at System.Collections.Generic.Dictionary
2.Insert(TKey key, TValue value, Boolean add)\r\n at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable
1 source, Func2 keySelector, Func
2 elementSelector, IEqualityComparer1 comparer)\r\n at Papercut.Message.ReceivedDataMessageHandler.HandleReceived(String messageData, IList
1 recipients) in C:\Users\user\Documents\Visual Studio 2015\Projects\Papercut-develop\src\Papercut.Message\ReceivedDataMessageHandler.cs:line 60\r\n at Papercut.Network.SmtpCommands.DataSmtpCommand.Run(String command, String[] args) in C:\Users\user\Documents\Visual Studio 2015\Projects\Papercut-develop\src\Papercut.Network\SmtpCommands\DataSmtpCommand.cs:line 82\r\n at Papercut.Network.SmtpCommands.BaseSmtpCommand.Execute(ISmtpContext context, String request) in C:\Users\user\Documents\Visual Studio 2015\Projects\Papercut-develop\src\Papercut.Network\SmtpCommands\BaseSmtpCommand.cs:line 44\r\n at Papercut.Network.Protocols.SmtpProtocol.ProcessRequest(String request) in C:\Users\user\Documents\Visual Studio 2015\Projects\Papercut-develop\src\Papercut.Network\Protocols\SmtpProtocol.cs:line 59\r\n at Papercut.Network.Protocols.StringCommandProtocol.ProcessIncomingBuffer(Byte[] bufferedData) in C:\Users\user\Documents\Visual Studio 2015\Projects\Papercut-develop\src\Papercut.Network\Protocols\StringCommandProtocol.cs:line 61\r\n at Papercut.Network.Connection.ContinueProcessReceive(IAsyncResult result) in C:\Users\user\Documents\Visual Studio 2015\Projects\Papercut-develop\src\Papercut.Network\Connection.cs:line 129"
Problem occurs from trying to add a duplicate recipient to the recipients list, at
var lookup = recipients.IfNullEmpty().ToDictionary(s => s, s => s, StringComparer.OrdinalIgnoreCase);
changing it to
var lookup = recipients.Distinct(StringComparer.CurrentCultureIgnoreCase).IfNullEmpty().ToDictionary(s => s, s => s, StringComparer.OrdinalIgnoreCase);
Seems to work as intended.
Hi,
We currently have the following rules configured for forwarding all received e-mails to four different people.
When using this configuration a range of malformations occur, the following are some that we have seen:
A combination of these malformations is also possible and has also been seen.
These malformations only happen when more than 1 forwarding rule is enabled. Whenever only a single rule is active the e-mails are received correctly, it doesn't matter which rule; as long as it's one.
Any idea on what's causing this behavior?
I download and installed papercut on windows 7 VM. When I try to run it, it stop working and give following error
Problem signature:
Problem Event Name: CLR20r3
Problem Signature 01: papercut.exe
Problem Signature 02: 4.5.0.0
Problem Signature 03: 56b0189a
Problem Signature 04: Autofac
Problem Signature 05: 3.5.0.0
Problem Signature 06: 53ea13f4
Problem Signature 07: 282
Problem Signature 08: 85
Problem Signature 09: System.IO.FileLoadException
OS Version: 6.1.7600.2.0.0.256.4
Locale ID: 1033
Additional Information 1: 3a14
Additional Information 2: 3a141e763fcddd6f6f1ff62b2b1b61ff
Additional Information 3: 75ea
Additional Information 4: 75ea500045a5a896f6f4ca0c98fa8b2d
are the actual code in each project is already using net 4.5, if not why you need to upgrade it
Ok...maybe I'm not doing something right.
To start Papercut, you have to start the service (run Install-Papercut-Service.bat) then run the Papercut.exe. I have done that but the command prompt is stopped at
"Server Ready - listening for New Connections 127.0.0.1":37403
No icons are appearing. Nothing is showing in the notification window.
Is there something that I'm missing?
Hello,
I try to run Papercut on AppVeyor using choco install papercut
but the Service does not seem to be registered or something else is wrong!?
papercut v4.8.0.1 [Approved]
49papercut package files install completed. Performing other installation steps.
50 ShimGen has successfully created a gui shim for Papercut.exe
51 The install of papercut was successful.
52 Software install location not explicitly set, could be in package or
53 default install location if installer.
54
55Chocolatey installed 1/1 packages. 0 packages failed.
56 See the log for details (C:\ProgramData\chocolatey\logs\chocolatey.log).
57net start PapercutServerService
58The service name is invalid.
Best regards
Henry
I would like to use this to log incoming emails - or even forward them on as syslog messages - possible?
Purpose:
Alerts from WUG (as an example) sent to Splunk.
When minimized it goes to the tray. Although I am sure many peoples like this, not everyone does... personally I think it's confusing.
Hopefully in future we can have config option to minimize to taskbar like "normal" app, but also have ability to minimize to tray (for people who like it like that).
My test email in UTF-8 encoding is wrong in the message body. I have seen #56 - the Subject and From fields are displayed properly, but in the message body there are still question marks. See attached message sent twice from the same application, once received by Papercut and once by another tool. The problem is obviously in receiving (and not displaying), because the file on the disk is wrong.
Email source taken by Papercut: Papercut.eml.txt
Email source received by another tool: TestMailServerTool.eml.txt
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.