Skip to content

Commit 9264270

Browse files
committed
Merge branch 'release/7.0.0'
2 parents 536a994 + 55fc7ff commit 9264270

File tree

150 files changed

+7721
-5161
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

150 files changed

+7721
-5161
lines changed

.dockerignore

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
**/.dockerignore
2+
**/.env
3+
**/.git
4+
**/.gitignore
5+
**/.project
6+
**/.settings
7+
**/.toolstarget
8+
**/.vs
9+
**/.vscode
10+
**/.idea
11+
**/*.*proj.user
12+
**/*.dbmdl
13+
**/*.jfm
14+
**/azds.yaml
15+
**/bin
16+
**/charts
17+
**/docker-compose*
18+
**/Dockerfile*
19+
**/node_modules
20+
**/npm-debug.log
21+
**/obj
22+
**/secrets.dev.yaml
23+
**/values.dev.yaml
24+
LICENSE
25+
README.md

Dockerfile

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
2+
USER $APP_UID
3+
WORKDIR /app
4+
5+
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
6+
ARG BUILD_CONFIGURATION=Release
7+
ARG BUILD_VERSION=1.0.0.0
8+
WORKDIR /work
9+
COPY ["src/Papercut.Service/Papercut.Service.csproj", "/work/Papercut.Service/"]
10+
COPY ["src/Papercut.Common/Papercut.Common.csproj", "/work/Papercut.Common/"]
11+
COPY ["src/Papercut.Core/Papercut.Core.csproj", "/work/Papercut.Core/"]
12+
COPY ["src/Papercut.Infrastructure.IPComm/Papercut.Infrastructure.IPComm.csproj", "/work/Papercut.Infrastructure.IPComm/"]
13+
COPY ["src/Papercut.Infrastructure.Smtp/Papercut.Infrastructure.Smtp.csproj", "/work/Papercut.Infrastructure.Smtp/"]
14+
COPY ["src/Papercut.Message/Papercut.Message.csproj", "/work/Papercut.Message/"]
15+
COPY ["src/Papercut.Rules/Papercut.Rules.csproj", "/work/Papercut.Rules/"]
16+
RUN dotnet restore "/work/Papercut.Service/Papercut.Service.csproj"
17+
COPY . .
18+
19+
#RUN sed "s/\(Assembly\(Informational\|File\)Version(\d34[0-9]\+\.[0-9]\+\.[0-9]\+\.\)[0-9]\+/\1$BUILD_VERSION/" src/GlobalAssemblyInfo.cs
20+
21+
WORKDIR "/work/src/Papercut.Service"
22+
23+
RUN dotnet build "Papercut.Service.csproj" -c $BUILD_CONFIGURATION -o /app/build
24+
25+
FROM build AS publish
26+
ARG BUILD_CONFIGURATION=Release
27+
RUN dotnet publish "Papercut.Service.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false
28+
29+
FROM base AS final
30+
31+
ARG BUILD_VERSION
32+
ARG BUILD_DATE
33+
ARG VCS_REF
34+
35+
LABEL org.opencontainers.image.title="Papercut SMTP Service" \
36+
org.opencontainers.image.description="Papercut SMTP Service is a 2-in-1 quick email viewer AND built-in SMTP server" \
37+
org.opencontainers.image.version=${BUILD_VERSION} \
38+
org.opencontainers.image.url="https://www.papercut-smtp.com/" \
39+
org.opencontainers.image.source="https://github.com/ChangemakerStudios/Papercut-SMTP" \
40+
org.opencontainers.image.created=${BUILD_DATE} \
41+
org.opencontainers.image.revision=${VCS_REF} \
42+
org.opencontainers.image.licenses="Apache License, Version 2.0"
43+
44+
WORKDIR /app
45+
46+
COPY --from=publish /app/publish .
47+
48+
ENV ASPNETCORE_HTTP_PORTS=80
49+
50+
# HTTP
51+
EXPOSE 80
52+
53+
# SMTP
54+
EXPOSE 25
55+
56+
# optional -- should only be used locally: IPComm
57+
# EXPOSE 37403
58+
59+
CMD ["dotnet", "Papercut.Service.dll"]

Papercut.sln

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,11 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".Build", ".Build", "{8661B3
3434
GitVersion.yml = GitVersion.yml
3535
build\ReleaseNotes.cake = build\ReleaseNotes.cake
3636
ReleaseNotes.md = ReleaseNotes.md
37+
.dockerignore = .dockerignore
38+
Dockerfile = Dockerfile
39+
README.md = README.md
40+
build-docker.sh = build-docker.sh
41+
build-docker.ps1 = build-docker.ps1
3742
EndProjectSection
3843
EndProject
3944
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Papercut.Infrastructure.Smtp", "src\Papercut.Infrastructure.Smtp\Papercut.Infrastructure.Smtp.csproj", "{873EC485-8E94-4877-8EA7-A7DFE7612E0A}"

README.md

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,16 @@
44
[![Build status](https://ci.appveyor.com/api/projects/status/bs2asxoafdwbkcxa?svg=true)](https://ci.appveyor.com/project/Jaben/papercut-smtp)
55

66
## The problem
7-
If you ever send emails from an application or web site during development, you're familiar with the fear of an email being released into the wild. Are you positive none of the 'test' emails are addressed to colleagues or worse, customers? Of course, you can set up and maintain a test email server for development -- but that's a chore. Plus, the delay when you are waiting to view new test emails can radically slow your development cycle.
7+
If you ever send emails from an application or website during development, you're familiar with the fear of an email being released into the wild. Are you positive none of the 'test' emails are addressed to colleagues or worse, customers? Of course, you can set up and maintain a test email server for development -- but that's a chore. Plus, the delay when waiting to view new test emails can radically slow your development cycle.
88

99
## Papercut SMTP to the rescue!
10-
Papercut SMTP is a 2-in-1 quick email viewer AND built-in SMTP server (designed to receive messages only). Papercut SMTP doesn't enforce any restrictions how you prepare your email, but it allows you to view the whole email-chilada: body, html, headers, attachment down right down to the naughty raw encoded bits. Papercut can be configured to run on startup and sit quietly (minimized in the tray) only providing a notification when a new message has arrived.
10+
Papercut SMTP is a 2-in-1 quick email viewer AND built-in SMTP server (designed to receive messages only). Papercut SMTP doesn't enforce any restrictions on how you prepare your email, but it allows you to view the whole email-chilada: body, HTML, headers, and attachment right down to the naughty raw encoded bits. Papercut can be configured to run on startup and sit quietly (minimized in the tray) only providing a notification when a new message has arrived.
1111

1212
## Download Now
1313
### [Download the Papercut.Setup.exe installer](https://github.com/ChangemakerStudios/Papercut-SMTP/releases)
1414

1515
## Requirements
16-
Papercut SMTP UI Requires the "WebView2" Microsoft shared system component be installed on your system. If you have any problems getting it running go to this site:
16+
Papercut SMTP UI Requires the "WebView2" Microsoft shared system component to be installed on your system. If you have any problems getting it running go to this site:
1717
[WebView2 Download](https://developer.microsoft.com/en-us/microsoft-edge/webview2) and install it.
1818

1919
## Features
@@ -28,9 +28,26 @@ Papercut SMTP UI Requires the "WebView2" Microsoft shared system component be in
2828
#### Logging View
2929
![Logging View](https://changemakerstudios.us/content/images/2020/07/Papercut-Log.png)
3030

31-
## Papercut SMTP Background Service
32-
Papercut SMTP has an optional "always on" service to receive emails even when the client is not running. It's installed by default with [Papercut.Setup.exe](https://github.com/ChangemakerStudios/Papercut/releases).
31+
## Papercut SMTP Service
32+
Papercut SMTP has an optional HTTP server to receive emails even when the client is not running. It's installed by default with [Papercut.Setup.exe](https://github.com/ChangemakerStudios/Papercut/releases).
3333
Alternatively, it can be run in an almost portable way by downloading [Papercut.Service.zip](https://github.com/ChangemakerStudios/Papercut/releases), unzipping and [following the service installation instructions](https://github.com/ChangemakerStudios/Papercut/tree/develop/src/Papercut.Service).
3434

35+
### Host in Docker
36+
37+
Optionally you can run Papercut SMTP Service in docker: [Papercut SMTP Service in Docker](https://hub.docker.com/r/changemakerstudiosus/papercut-smtp)
38+
39+
#### Pull Image:
40+
41+
```powershell
42+
> docker pull changemakerstudiosus/papercut-smtp:latest
43+
```
44+
45+
#### Run Papercut STMP Server Locally in Docker (HTTP Port :8080 and STMP port 25)
46+
```powershell
47+
docker run -d -p 8080:80 -p 25:25 changemakerstudiosus/papercut-smtp:latest
48+
```
49+
50+
The Papercut-SMTP Server Site will be accessible at http://localhost:8080.
51+
3552
## License
3653
Papercut SMTP is Licensed under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0).

ReleaseNotes.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
# Release Notes
22

3-
## Papercut SMTP v7.0.0 [2024-05-17]
3+
## Papercut SMTP v7.0.0 [2024-10-14]
44

55
_NOTE: Uninstall any existing Papercut SMTP installations BEFORE installing this new version._
66

77
- Upgraded to .NET 8
88
- Upgraded to latest dependencies (Caliburn Micro, Autofac, MahApps) and associated systems to support .NET 8.
99
- Switched to [Velopack](https://github.com/velopack/velopack) auto-upgradable installation system. Great project! (Thanks, [caesay](https://github.com/caesay)!)
1010
- Fix for log updating constantly causing unnecessary WebView2 loading. (PR thanks to [arthurzaczek](https://github.com/arthurzaczek))
11+
- Fix for double request when clicking on links in emails. Issue #232.
12+
- Added InvokeProcess Rule (#274)
1113

1214
## Papercut SMTP v6.2.0 [2022-04-24]
1315

build-docker.ps1

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
param (
2+
[string]$BuildVersion
3+
)
4+
5+
if (-not $BuildVersion) {
6+
Write-Host "You must specify a build version. E.g.: 7.0.1"
7+
exit 1
8+
}
9+
10+
$BuildDate = (Get-Date).ToString("yyyy-MM-ddTHH:mm:ssZ")
11+
$VcsRef = (git rev-parse --short HEAD)
12+
13+
docker build -t "changemakerstudiosus/papercut-smtp:$BuildVersion" . `
14+
--build-arg BUILD_VERSION=$BuildVersion `
15+
--build-arg BUILD_DATE=$BuildDate `
16+
--build-arg VCS_REF=$VcsRef `
17+
--no-cache

build-docker.sh

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
BuildVersion=$1
2+
if [ -z "$BuildVersion" ]; then
3+
echo "You must specify a build version. E.g.: 7.0.1"
4+
exit 1
5+
fi
6+
7+
BuildDate=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8+
VcsRef=$(git rev-parse --short HEAD)
9+
10+
docker build -t changemakerstudiosus/papercut-smtp:"$BuildVersion" . \
11+
--build-arg BUILD_VERSION="$BuildVersion" \
12+
--build-arg BUILD_DATE="$BuildDate" \
13+
--build-arg VCS_REF="$VcsRef" \
14+
--no-cache

build.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
dotnet tool install --global Cake.Tool --version 3.2.0
2-
dotnet tool install --global vpk --version 0.0.359
2+
dotnet tool install --global vpk --version 0.0.626
33
dotnet-cake --configuration=Release

src/GlobalAssemblyInfo.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,6 @@
55
//------------------------------------------------------------------------------
66
using System.Reflection;
77

8-
[assembly: AssemblyVersion("7.0.0.0")]
9-
[assembly: AssemblyFileVersion("7.0.0.0")]
10-
[assembly: AssemblyInformationalVersion("7.0.0.0")]
8+
[assembly: AssemblyVersion("7.1.0.0")]
9+
[assembly: AssemblyFileVersion("7.1.0.0")]
10+
[assembly: AssemblyInformationalVersion("7.1.0-dev.111+Branch.develop.Sha.c6c2a6557ac3b3a8d1ebd93f45de2ff515018f18")]

src/Papercut.Common/Papercut.Common.csproj

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,12 @@
55
</PropertyGroup>
66

77
<ItemGroup>
8-
<PackageReference Include="System.Runtime.Caching" Version="8.0.0" />
8+
<PackageReference Include="System.Runtime.Caching" Version="8.0.1" />
9+
</ItemGroup>
10+
11+
<ItemGroup>
12+
<PackageReference Update="JetBrains.Annotations" Version="2024.2.0" />
13+
<PackageReference Update="Serilog" Version="4.0.2" />
914
</ItemGroup>
1015

1116
</Project>

0 commit comments

Comments
 (0)