This commit is contained in:
unknown 2024-04-01 13:02:08 -04:00
commit daf994e347
146 changed files with 4682 additions and 0 deletions

2
.gitattributes vendored Normal file
View File

@ -0,0 +1,2 @@
# Auto detect text files and perform LF normalization
* text=auto

Binary file not shown.

BIN
.vs/Scan2Email/v16/.suo Normal file

Binary file not shown.

21
LICENSE Normal file
View File

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2021 Dylan
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

74
README.md Normal file
View File

@ -0,0 +1,74 @@
# Send2Email
A simple application to send files of specified filetypes in the Pictures folder to a specified email address.
# Configuration
You will need to edit the cfg.json file with the necessary data and place it in
C:\Users\\[USER]\AppData\Local\Send2Email for each user that will be using the application.
//TODO: Create the cfg.json file automatically
//TODO: Create support for HTTP GET request to fetch cfg.json from a trusted server instead of having it available locally on the machine
##### SMTP_Host
* You'll need to connect to an SMTP Server host to send email.
* Default: smtp.google.com
##### SMTP_Port
* You'll need to connect to an SMTP Server port that is accepting traffic.
* The most common port for SMTP is 587, but if you're connecting to an older SMTP server it may be port 25, and if you're connecting to an SMTPS server that uses SSL it might be set to 465.
* Default: 587
##### SMTP_User
* This is the email address that you'll be logging into to send emails from.
* Default: N/A
##### SMTP_Pass
* This is the password for the SMTP_User that you'll be logging into to send emails from.
* This is also the password you'll use when you choose Edit > Config from the file menu to access a GUI editor for the cfg.json file.
* Note you will need the cfg.json file to at least exist in the AppData folder, as the software will not run without detecting cfg.json.
* Default: N/A
##### Mail_From
* This is what will show in the "From" section of the email. This has only been tested with the same data as SMTP_User.
* Default: Same as SMTP_User
##### Mail_Subject
* This is what will show in the Subject line of the email.
* Default: "Mail Subject Text"
##### Mail_Body
* This is what will show in the Body line of the email.
* Default: "Mail Body Text"
##### Mail_Delivery
* This is the message that will pop up on screen once you have send the email.
* The end of this message will append a blank space and the {destination_email}
* You will not need to add a space or the destination email variable to your string.
* Default: "Mail Delivery Text"
##### File_Extensions
* This is what determines what types of files to send in the email.
* Comma separated list
* You do not need to include a period before the filetype
* Default: "jpg, jpeg, png, gif, bmp, tif, pdf"
The final file should look something like this.
```sh
{
"SMTP_Host": "smtp.gmail.com",
"SMTP_Port": 587,
"SMTP_User": "email@company.com",
"SMTP_Pass": "smtp_password",
"Mail_From": "email@company.com",
"Mail_Subject": "Mail Subject Text",
"Mail_Body": "Mail Body Text",
"Mail_Delivery": "Mail Delivery Text",
"File_Extensions": "jpg, jpeg, png, gif, bmp, tif, pdf"
}
```
# Usage
Onve you've set up the cfg.json file Send2Email is a simple program, to use it you'll simply run it, and enter in an email address. Click send and it will attempt to attach each file in the User's Pictures directory as an attachment to that email, provided they are of the proper filetypes.

25
Scan2Email.sln Normal file
View File

@ -0,0 +1,25 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.30611.23
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Scan2Email", "SendEmail\Scan2Email.csproj", "{1A02CCC7-F2E8-46BE-8329-FA552F5EEBFF}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{1A02CCC7-F2E8-46BE-8329-FA552F5EEBFF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1A02CCC7-F2E8-46BE-8329-FA552F5EEBFF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1A02CCC7-F2E8-46BE-8329-FA552F5EEBFF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1A02CCC7-F2E8-46BE-8329-FA552F5EEBFF}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {455A9DCB-2147-480D-B708-69073E1ABF7D}
EndGlobalSection
EndGlobal

229
SendEmail/Form1.Designer.cs generated Normal file
View File

@ -0,0 +1,229 @@
using System;
namespace SendEmail
{
partial class Form1
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.SendBtn = new System.Windows.Forms.Button();
this.EmailLabel = new System.Windows.Forms.Label();
this.EmailInput = new System.Windows.Forms.TextBox();
this.FileComboBox = new System.Windows.Forms.ToolStripComboBox();
this.menuStrip1 = new System.Windows.Forms.MenuStrip();
this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.editToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.ConfigMenu = new System.Windows.Forms.ToolStripMenuItem();
this.selectAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator();
this.pasteToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.copyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.cutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
this.redoToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.undoToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.menuStrip1.SuspendLayout();
this.SuspendLayout();
//
// SendBtn
//
this.SendBtn.Location = new System.Drawing.Point(291, 48);
this.SendBtn.Name = "SendBtn";
this.SendBtn.Size = new System.Drawing.Size(75, 23);
this.SendBtn.TabIndex = 0;
this.SendBtn.Text = "Send";
this.SendBtn.UseVisualStyleBackColor = true;
this.SendBtn.Click += new System.EventHandler(this.SendClick);
//
// EmailLabel
//
this.EmailLabel.AutoSize = true;
this.EmailLabel.Location = new System.Drawing.Point(12, 31);
this.EmailLabel.Name = "EmailLabel";
this.EmailLabel.Size = new System.Drawing.Size(81, 15);
this.EmailLabel.TabIndex = 1;
this.EmailLabel.Text = "Email Address";
//
// EmailInput
//
this.EmailInput.Location = new System.Drawing.Point(12, 49);
this.EmailInput.Name = "EmailInput";
this.EmailInput.Size = new System.Drawing.Size(273, 23);
this.EmailInput.TabIndex = 2;
this.EmailInput.KeyDown += new System.Windows.Forms.KeyEventHandler(this.CheckEnter);
//
// FileComboBox
//
this.FileComboBox.AutoSize = false;
this.FileComboBox.Name = "FileComboBox";
this.FileComboBox.Size = new System.Drawing.Size(121, 23);
this.FileComboBox.Text = "File";
//
// menuStrip1
//
this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.fileToolStripMenuItem,
this.editToolStripMenuItem});
this.menuStrip1.Location = new System.Drawing.Point(0, 0);
this.menuStrip1.Name = "menuStrip1";
this.menuStrip1.RenderMode = System.Windows.Forms.ToolStripRenderMode.System;
this.menuStrip1.Size = new System.Drawing.Size(384, 24);
this.menuStrip1.Stretch = false;
this.menuStrip1.TabIndex = 3;
this.menuStrip1.Text = "menuStrip1";
//
// fileToolStripMenuItem
//
this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.exitToolStripMenuItem});
this.fileToolStripMenuItem.Name = "fileToolStripMenuItem";
this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20);
this.fileToolStripMenuItem.Text = "File";
//
// exitToolStripMenuItem
//
this.exitToolStripMenuItem.Name = "exitToolStripMenuItem";
this.exitToolStripMenuItem.Size = new System.Drawing.Size(92, 22);
this.exitToolStripMenuItem.Text = "Exit";
this.exitToolStripMenuItem.Click += new System.EventHandler(this.ExitClick);
//
// editToolStripMenuItem
//
this.editToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.ConfigMenu});
this.editToolStripMenuItem.Name = "editToolStripMenuItem";
this.editToolStripMenuItem.Size = new System.Drawing.Size(39, 20);
this.editToolStripMenuItem.Text = "Edit";
//
// ConfigMenu
//
this.ConfigMenu.Name = "ConfigMenu";
this.ConfigMenu.Size = new System.Drawing.Size(110, 22);
this.ConfigMenu.Text = "Config";
this.ConfigMenu.Click += new System.EventHandler(this.ConfigClick);
//
// selectAllToolStripMenuItem
//
this.selectAllToolStripMenuItem.Name = "selectAllToolStripMenuItem";
this.selectAllToolStripMenuItem.Size = new System.Drawing.Size(144, 22);
this.selectAllToolStripMenuItem.Text = "Select &All";
//
// toolStripSeparator4
//
this.toolStripSeparator4.Name = "toolStripSeparator4";
this.toolStripSeparator4.Size = new System.Drawing.Size(141, 6);
//
// pasteToolStripMenuItem
//
this.pasteToolStripMenuItem.ImageTransparentColor = System.Drawing.Color.Magenta;
this.pasteToolStripMenuItem.Name = "pasteToolStripMenuItem";
this.pasteToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.V)));
this.pasteToolStripMenuItem.Size = new System.Drawing.Size(144, 22);
this.pasteToolStripMenuItem.Text = "&Paste";
//
// copyToolStripMenuItem
//
this.copyToolStripMenuItem.ImageTransparentColor = System.Drawing.Color.Magenta;
this.copyToolStripMenuItem.Name = "copyToolStripMenuItem";
this.copyToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.C)));
this.copyToolStripMenuItem.Size = new System.Drawing.Size(144, 22);
this.copyToolStripMenuItem.Text = "&Copy";
//
// cutToolStripMenuItem
//
this.cutToolStripMenuItem.ImageTransparentColor = System.Drawing.Color.Magenta;
this.cutToolStripMenuItem.Name = "cutToolStripMenuItem";
this.cutToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.X)));
this.cutToolStripMenuItem.Size = new System.Drawing.Size(144, 22);
this.cutToolStripMenuItem.Text = "Cu&t";
//
// toolStripSeparator3
//
this.toolStripSeparator3.Name = "toolStripSeparator3";
this.toolStripSeparator3.Size = new System.Drawing.Size(141, 6);
//
// redoToolStripMenuItem
//
this.redoToolStripMenuItem.Name = "redoToolStripMenuItem";
this.redoToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Y)));
this.redoToolStripMenuItem.Size = new System.Drawing.Size(144, 22);
this.redoToolStripMenuItem.Text = "&Redo";
//
// undoToolStripMenuItem
//
this.undoToolStripMenuItem.Name = "undoToolStripMenuItem";
this.undoToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Z)));
this.undoToolStripMenuItem.Size = new System.Drawing.Size(144, 22);
this.undoToolStripMenuItem.Text = "&Undo";
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.AutoScroll = true;
this.AutoSize = true;
this.ClientSize = new System.Drawing.Size(384, 84);
this.Controls.Add(this.EmailInput);
this.Controls.Add(this.EmailLabel);
this.Controls.Add(this.SendBtn);
this.Controls.Add(this.menuStrip1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.MainMenuStrip = this.menuStrip1;
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "Form1";
this.Text = " Send2Email";
this.menuStrip1.ResumeLayout(false);
this.menuStrip1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Button SendBtn;
private System.Windows.Forms.Label EmailLabel;
private System.Windows.Forms.TextBox EmailInput;
private System.Windows.Forms.ToolStripComboBox FileComboBox;
private System.Windows.Forms.MenuStrip menuStrip1;
private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem editToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem ConfigMenu;
private System.Windows.Forms.ToolStripMenuItem selectAllToolStripMenuItem;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator4;
private System.Windows.Forms.ToolStripMenuItem pasteToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem copyToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem cutToolStripMenuItem;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator3;
private System.Windows.Forms.ToolStripMenuItem redoToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem undoToolStripMenuItem;
}
}

59
SendEmail/Form1.cs Normal file
View File

@ -0,0 +1,59 @@
using System;
using System.Windows.Forms;
namespace SendEmail
{
public partial class Form1 : Form
{
/*
* Form1 is the main window for Send2Email
*/
#region UI
public Form1() //Autogenerated Code Block
{
InitializeComponent();
}
private void ExitClick(object sender, EventArgs e)
{
//Exit the application
Application.Exit();
}
private void ConfigClick(object sender, EventArgs e)
{
this.Hide(); //Hide Form1
var form2 = new Form2(); //Create Form 2
form2.Closed += (s, args) => this.Show(); //Attach this.Show() to the Form2.Close() eventhandler, which will show Form1 when Form2 closes.
form2.Show(); //Show Form2
}
private void SendClick(object sender, EventArgs e)
{
string email = EmailInput.Text; //Get Email from Text Input
//Checks if email is valid, this does not check if the email address DOES exist, just if it CAN exist
if (Program.IsValidEmail(email)) //If email is valid
{
Program.Send(email); //Sends valid email to Send() function from within Program.cs
}
else //If the email is not valid
{
//Error Message for invalid email
MessageBox.Show(email + " is not a valid email address.\r\nPlease enter a valid email address.");
}
}
#endregion
//Check if enter key is pressed in email address input
private void CheckEnter(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Return) //If enter key pressed run the SendClick() function
{
SendClick(sender, e);
}
}
}
}

63
SendEmail/Form1.resx Normal file
View File

@ -0,0 +1,63 @@
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

89
SendEmail/Form2.Designer.cs generated Normal file
View File

@ -0,0 +1,89 @@

namespace SendEmail
{
partial class Form2
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.textBox1 = new System.Windows.Forms.TextBox();
this.label1 = new System.Windows.Forms.Label();
this.passButton = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// textBox1
//
this.textBox1.Location = new System.Drawing.Point(75, 6);
this.textBox1.Name = "textBox1";
this.textBox1.PasswordChar = '●';
this.textBox1.Size = new System.Drawing.Size(216, 23);
this.textBox1.TabIndex = 0;
this.textBox1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.CheckEnter);
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(12, 9);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(57, 15);
this.label1.TabIndex = 1;
this.label1.Text = "Password";
//
// passButton
//
this.passButton.Location = new System.Drawing.Point(297, 5);
this.passButton.Name = "passButton";
this.passButton.Size = new System.Drawing.Size(75, 23);
this.passButton.TabIndex = 2;
this.passButton.Text = "Submit";
this.passButton.UseVisualStyleBackColor = true;
this.passButton.Click += new System.EventHandler(this.PassButtonClick);
//
// Form2
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(384, 39);
this.Controls.Add(this.passButton);
this.Controls.Add(this.label1);
this.Controls.Add(this.textBox1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "Form2";
this.Text = "Form2";
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.TextBox textBox1;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Button passButton;
}
}

61
SendEmail/Form2.cs Normal file
View File

@ -0,0 +1,61 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace SendEmail
{
public partial class Form2 : Form
{
/*
* Form2 is only the password prompt to enter the configuration menu
*/
//Global Variables
int wrongCount = 0; //Counts how many times the password is entered incorrectly
const int LIMIT = 5; //The amount of times a password can be tried before exiting
public Form2() //Autogenerated Code Block
{
InitializeComponent();
}
//Checks the password entered
private void PassButtonClick(object sender, EventArgs e)
{
string input = textBox1.Text;
if (input == Program.smtp_pass) //If password is correct
{
this.Hide(); //Hide Form2
var form3 = new Form3(); //Create Form3
form3.Closed += (s, args) => this.Close(); //Attach this.Show() to the Form3.Close() eventhandler, which will show Form2 when Form3 closes.
form3.Show(); //Show Form3
}
else
{
wrongCount++; //Each time this code is reached the wrong counter increases by 1
if(wrongCount == LIMIT) //If we've reached the limit
{
Application.Exit(); //Exit the application
}
else //If we haven't reached the limit
{
//Inform user the number of password attempts remaining.
MessageBox.Show("Incorrect password. " + (LIMIT - wrongCount).ToString() + " attempts remaining.");
}
}
}
//Check if enter key is pressed in the password text box
private void CheckEnter(object sender, KeyEventArgs e)
{
if(e.KeyCode == Keys.Return)
{
PassButtonClick(sender, e);
}
}
}
}

60
SendEmail/Form2.resx Normal file
View File

@ -0,0 +1,60 @@
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

382
SendEmail/Form3.Designer.cs generated Normal file
View File

@ -0,0 +1,382 @@

namespace SendEmail
{
partial class Form3
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.hostTB = new System.Windows.Forms.TextBox();
this.label1 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.portTB = new System.Windows.Forms.TextBox();
this.label3 = new System.Windows.Forms.Label();
this.emailTB = new System.Windows.Forms.TextBox();
this.label4 = new System.Windows.Forms.Label();
this.passwordTB = new System.Windows.Forms.TextBox();
this.panel1 = new System.Windows.Forms.Panel();
this.label6 = new System.Windows.Forms.Label();
this.panel2 = new System.Windows.Forms.Panel();
this.label7 = new System.Windows.Forms.Label();
this.label8 = new System.Windows.Forms.Label();
this.fromTB = new System.Windows.Forms.TextBox();
this.label9 = new System.Windows.Forms.Label();
this.subjectTB = new System.Windows.Forms.TextBox();
this.label10 = new System.Windows.Forms.Label();
this.bodyTB = new System.Windows.Forms.TextBox();
this.deliveryTB = new System.Windows.Forms.TextBox();
this.label11 = new System.Windows.Forms.Label();
this.panel3 = new System.Windows.Forms.Panel();
this.label15 = new System.Windows.Forms.Label();
this.label5 = new System.Windows.Forms.Label();
this.extensionsTB = new System.Windows.Forms.TextBox();
this.saveBtn = new System.Windows.Forms.Button();
this.panel4 = new System.Windows.Forms.Panel();
this.infoBox = new System.Windows.Forms.TextBox();
this.panel1.SuspendLayout();
this.panel2.SuspendLayout();
this.panel3.SuspendLayout();
this.panel4.SuspendLayout();
this.SuspendLayout();
//
// hostTB
//
this.hostTB.Location = new System.Drawing.Point(71, 32);
this.hostTB.Name = "hostTB";
this.hostTB.Size = new System.Drawing.Size(431, 23);
this.hostTB.TabIndex = 0;
this.hostTB.MouseEnter += new System.EventHandler(this.HoverInfo);
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(26, 35);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(32, 15);
this.label1.TabIndex = 1;
this.label1.Text = "Host";
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(29, 64);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(29, 15);
this.label2.TabIndex = 3;
this.label2.Text = "Port";
//
// portTB
//
this.portTB.Location = new System.Drawing.Point(71, 61);
this.portTB.Name = "portTB";
this.portTB.Size = new System.Drawing.Size(431, 23);
this.portTB.TabIndex = 2;
this.portTB.MouseEnter += new System.EventHandler(this.HoverInfo);
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(22, 93);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(36, 15);
this.label3.TabIndex = 5;
this.label3.Text = "Email";
//
// emailTB
//
this.emailTB.Location = new System.Drawing.Point(71, 90);
this.emailTB.Name = "emailTB";
this.emailTB.Size = new System.Drawing.Size(431, 23);
this.emailTB.TabIndex = 4;
this.emailTB.MouseEnter += new System.EventHandler(this.HoverInfo);
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(1, 122);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(57, 15);
this.label4.TabIndex = 7;
this.label4.Text = "Password";
//
// passwordTB
//
this.passwordTB.Location = new System.Drawing.Point(71, 119);
this.passwordTB.Name = "passwordTB";
this.passwordTB.Size = new System.Drawing.Size(431, 23);
this.passwordTB.TabIndex = 6;
this.passwordTB.MouseEnter += new System.EventHandler(this.HoverInfo);
//
// panel1
//
this.panel1.BackColor = System.Drawing.SystemColors.ControlLight;
this.panel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.panel1.Controls.Add(this.label6);
this.panel1.Controls.Add(this.label4);
this.panel1.Controls.Add(this.hostTB);
this.panel1.Controls.Add(this.label1);
this.panel1.Controls.Add(this.portTB);
this.panel1.Controls.Add(this.label2);
this.panel1.Controls.Add(this.emailTB);
this.panel1.Controls.Add(this.passwordTB);
this.panel1.Controls.Add(this.label3);
this.panel1.Location = new System.Drawing.Point(12, 13);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(521, 155);
this.panel1.TabIndex = 11;
//
// label6
//
this.label6.AutoSize = true;
this.label6.Font = new System.Drawing.Font("Segoe UI", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
this.label6.Location = new System.Drawing.Point(3, 4);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(132, 25);
this.label6.TabIndex = 0;
this.label6.Text = "SMTP Settings";
//
// panel2
//
this.panel2.BackColor = System.Drawing.SystemColors.ControlLight;
this.panel2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.panel2.Controls.Add(this.label7);
this.panel2.Controls.Add(this.label8);
this.panel2.Controls.Add(this.fromTB);
this.panel2.Controls.Add(this.label9);
this.panel2.Controls.Add(this.subjectTB);
this.panel2.Controls.Add(this.label10);
this.panel2.Controls.Add(this.bodyTB);
this.panel2.Controls.Add(this.deliveryTB);
this.panel2.Controls.Add(this.label11);
this.panel2.Location = new System.Drawing.Point(12, 174);
this.panel2.Name = "panel2";
this.panel2.Size = new System.Drawing.Size(521, 155);
this.panel2.TabIndex = 12;
//
// label7
//
this.label7.AutoSize = true;
this.label7.Font = new System.Drawing.Font("Segoe UI", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
this.label7.Location = new System.Drawing.Point(3, 4);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(121, 25);
this.label7.TabIndex = 0;
this.label7.Text = "Mail Settings";
//
// label8
//
this.label8.AutoSize = true;
this.label8.Location = new System.Drawing.Point(9, 122);
this.label8.Name = "label8";
this.label8.Size = new System.Drawing.Size(49, 15);
this.label8.TabIndex = 7;
this.label8.Text = "Delivery";
//
// fromTB
//
this.fromTB.Location = new System.Drawing.Point(71, 32);
this.fromTB.Name = "fromTB";
this.fromTB.Size = new System.Drawing.Size(431, 23);
this.fromTB.TabIndex = 0;
this.fromTB.MouseEnter += new System.EventHandler(this.HoverInfo);
//
// label9
//
this.label9.AutoSize = true;
this.label9.Location = new System.Drawing.Point(23, 35);
this.label9.Name = "label9";
this.label9.Size = new System.Drawing.Size(35, 15);
this.label9.TabIndex = 1;
this.label9.Text = "From";
//
// subjectTB
//
this.subjectTB.Location = new System.Drawing.Point(71, 61);
this.subjectTB.Name = "subjectTB";
this.subjectTB.Size = new System.Drawing.Size(431, 23);
this.subjectTB.TabIndex = 2;
this.subjectTB.MouseEnter += new System.EventHandler(this.HoverInfo);
//
// label10
//
this.label10.AutoSize = true;
this.label10.Location = new System.Drawing.Point(12, 64);
this.label10.Name = "label10";
this.label10.Size = new System.Drawing.Size(46, 15);
this.label10.TabIndex = 3;
this.label10.Text = "Subject";
//
// bodyTB
//
this.bodyTB.Location = new System.Drawing.Point(71, 90);
this.bodyTB.Name = "bodyTB";
this.bodyTB.Size = new System.Drawing.Size(431, 23);
this.bodyTB.TabIndex = 4;
this.bodyTB.MouseEnter += new System.EventHandler(this.HoverInfo);
//
// deliveryTB
//
this.deliveryTB.Location = new System.Drawing.Point(71, 119);
this.deliveryTB.Name = "deliveryTB";
this.deliveryTB.Size = new System.Drawing.Size(431, 23);
this.deliveryTB.TabIndex = 6;
this.deliveryTB.MouseEnter += new System.EventHandler(this.HoverInfo);
//
// label11
//
this.label11.AutoSize = true;
this.label11.Location = new System.Drawing.Point(24, 93);
this.label11.Name = "label11";
this.label11.Size = new System.Drawing.Size(34, 15);
this.label11.TabIndex = 5;
this.label11.Text = "Body";
//
// panel3
//
this.panel3.BackColor = System.Drawing.SystemColors.ControlLight;
this.panel3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.panel3.Controls.Add(this.label15);
this.panel3.Controls.Add(this.label5);
this.panel3.Controls.Add(this.extensionsTB);
this.panel3.Location = new System.Drawing.Point(12, 335);
this.panel3.Name = "panel3";
this.panel3.Size = new System.Drawing.Size(521, 155);
this.panel3.TabIndex = 13;
//
// label15
//
this.label15.AutoSize = true;
this.label15.Location = new System.Drawing.Point(3, 35);
this.label15.Name = "label15";
this.label15.Size = new System.Drawing.Size(62, 15);
this.label15.TabIndex = 7;
this.label15.Text = "Extensions";
//
// label5
//
this.label5.AutoSize = true;
this.label5.Font = new System.Drawing.Font("Segoe UI", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
this.label5.Location = new System.Drawing.Point(3, 4);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(150, 25);
this.label5.TabIndex = 0;
this.label5.Text = "General Settings";
//
// extensionsTB
//
this.extensionsTB.Location = new System.Drawing.Point(71, 32);
this.extensionsTB.Name = "extensionsTB";
this.extensionsTB.Size = new System.Drawing.Size(431, 23);
this.extensionsTB.TabIndex = 2;
this.extensionsTB.MouseEnter += new System.EventHandler(this.HoverInfo);
//
// saveBtn
//
this.saveBtn.Location = new System.Drawing.Point(12, 497);
this.saveBtn.Name = "saveBtn";
this.saveBtn.Size = new System.Drawing.Size(521, 23);
this.saveBtn.TabIndex = 14;
this.saveBtn.Text = "Save";
this.saveBtn.UseVisualStyleBackColor = true;
this.saveBtn.Click += new System.EventHandler(this.SaveConfig);
//
// panel4
//
this.panel4.BackColor = System.Drawing.SystemColors.ControlLight;
this.panel4.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.panel4.Controls.Add(this.infoBox);
this.panel4.Location = new System.Drawing.Point(540, 13);
this.panel4.Name = "panel4";
this.panel4.Size = new System.Drawing.Size(171, 507);
this.panel4.TabIndex = 15;
//
// infoBox
//
this.infoBox.Location = new System.Drawing.Point(4, 5);
this.infoBox.Multiline = true;
this.infoBox.Name = "infoBox";
this.infoBox.ReadOnly = true;
this.infoBox.Size = new System.Drawing.Size(162, 497);
this.infoBox.TabIndex = 0;
//
// Form3
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(723, 546);
this.Controls.Add(this.panel4);
this.Controls.Add(this.saveBtn);
this.Controls.Add(this.panel3);
this.Controls.Add(this.panel2);
this.Controls.Add(this.panel1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "Form3";
this.Text = "Form3";
this.panel1.ResumeLayout(false);
this.panel1.PerformLayout();
this.panel2.ResumeLayout(false);
this.panel2.PerformLayout();
this.panel3.ResumeLayout(false);
this.panel3.PerformLayout();
this.panel4.ResumeLayout(false);
this.panel4.PerformLayout();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.TextBox hostTB;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.TextBox portTB;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.TextBox emailTB;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.TextBox passwordTB;
private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.Panel panel2;
private System.Windows.Forms.Label label7;
private System.Windows.Forms.Label label8;
private System.Windows.Forms.TextBox fromTB;
private System.Windows.Forms.Label label9;
private System.Windows.Forms.TextBox subjectTB;
private System.Windows.Forms.Label label10;
private System.Windows.Forms.TextBox bodyTB;
private System.Windows.Forms.TextBox deliveryTB;
private System.Windows.Forms.Label label11;
private System.Windows.Forms.Panel panel3;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.TextBox extensionsTB;
private System.Windows.Forms.Button saveBtn;
private System.Windows.Forms.Label label15;
private System.Windows.Forms.Panel panel4;
private System.Windows.Forms.TextBox infoBox;
}
}

266
SendEmail/Form3.cs Normal file
View File

@ -0,0 +1,266 @@
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Text;
using System.Windows.Forms;
using Newtonsoft.Json.Linq;
using System.Linq;
using System.Security.Cryptography;
namespace SendEmail
{
public partial class Form3 : Form
{
/*
* Form3 is the configuration window for Send2Email
*/
#region UI
//Default info in the info textbox
string defaultInfo = "Helpful information about each section will display here when you hover over a textbox with your mouse.";
public Form3() //Automatically generated codeblock
{
InitializeComponent();
SetInfoBox(defaultInfo);
FillData();
}
//This will set the info textbox's contents when you hover over an input field
private void SetInfoBox(string input)
{
infoBox.Text = input;
}
//Fill the input fields with the data from the config file
public void FillData()
{
hostTB.Text = Program.smtp_host;
portTB.Text = Program.smtp_port.ToString();
emailTB.Text = Program.smtp_user;
passwordTB.Text = Program.smtp_pass;
fromTB.Text = Program.mail_from;
subjectTB.Text = Program.mail_subject;
bodyTB.Text = Program.mail_body;
deliveryTB.Text = Program.mail_delivery;
extensionsTB.Text = Program.file_extensions;
}
//Detects when mouse hovers over an input field and calls SetInfoBox() with updated info text
private void HoverInfo(object sender, EventArgs e)
{
TextBox holder = (TextBox)sender; //Hold onto the sender event that triggered HoverInfo()
string holdName = holder.Name; //Get the name of the sender that triggered HoverInfo()
string output;
switch (holdName) //Switch through the possible input fields and sets the output to the correct values
{
case "hostTB":
output = "SMTP Host: SMTP Host. At the time of creation, we utalize Google's SMTP server located at smtp.google.com";
break;
case "portTB":
output = "SMTP Port: SMTP Port";
break;
case "emailTB":
output = "SMTP Email: The Email Address that is signing into the SMTP server.";
break;
case "passwordTB":
output = "SMTP Password: The password to sign into the SMTP server.";
break;
case "fromTB":
output = "Mail From: This is the email that will be listed in the 'from' section of the recipients email";
break;
case "subjectTB":
output = "Mail Subject: This is what will be put into the subject line of the email";
break;
case "bodyTB":
output = "Mail Body: This is what will be put into the body of the email";
break;
case "deliveryTB":
output = "Mail Delivery: is the message that will appear on screen once the user has successfully emailed themselves";
break;
case "extensionsTB":
output = "File Extensions: This determines the types of files that will be scraped from the Pictures folder.\r\nSeparate each entry with a comma, you do not need to include the period for any extensions.\r\nDefaults: jpg, jpeg, png, gif, bmp, tif, pdf";
break;
default:
output = defaultInfo;
break;
}
SetInfoBox(output); //Send the output text to the info textbox
}
#endregion
#region Save/Load Configuration
//Save the configuration data, will overwrite existing settings
private void SaveConfig(object sender, EventArgs e)
{
string cfg_host = hostTB.Text;
string string_cfg_port = portTB.Text;
string cfg_user = emailTB.Text;
string cfg_pass = passwordTB.Text;
string cfg_from = fromTB.Text;
string cfg_subject = subjectTB.Text;
string cfg_body = bodyTB.Text;
string cfg_delivery = deliveryTB.Text;
string cfg_extensions = extensionsTB.Text;
int cfg_port = Int32.Parse(string_cfg_port);
//Create a JSON object with the configuration data
Config cfg = new Config(cfg_host, cfg_port, cfg_user, cfg_pass, cfg_from, cfg_subject, cfg_body, cfg_delivery, cfg_extensions);
//Serialize the JSON data so it can be written to a text file
string[] json = { JsonConvert.SerializeObject(cfg, Formatting.Indented) };
//Write Config file to Program.appPath (default is Appdata/Local/Send2Email)
WriteFile(json, Program.configName, Program.configFileExt);
}
public static bool LoadConfig() //Boolean method, returns true or false to whatever called LoadConfig
{
//Config filepath
string cfg = Program.appPath + "/" + Program.configFileName;
//Check if config file exists
bool cExist = File.Exists(cfg);
if (!cExist) //If a config doesn't exist
{
return false; //Return false for LoadConfig boolean
}
else //Config file does exist
{
//Create an array to store the configuration file line by line
string[] cfgFile = ReadFile("cfg", "json");
string cfgData = ConvertStringArray(cfgFile);
//Get the first line of our configuration
Config config = JsonConvert.DeserializeObject<Config>(cfgData);
Program.smtp_host = config.SMTP_Host;
Program.smtp_port = config.SMTP_Port;
Program.smtp_user = config.SMTP_User;
Program.smtp_pass = config.SMTP_Pass;
Program.mail_from = config.Mail_From;
Program.mail_body = config.Mail_Body;
Program.mail_subject = config.Mail_Subject;
Program.mail_delivery = config.Mail_Delivery;
Program.file_extensions = config.File_Extensions;
return true;
}
}
#endregion
#region Read/Write Files
// Create a string array with the lines of text
public static void WriteFile(string[] data, string fileName, string fileExtension)
{
string temp = "";
string file = fileName + "." + fileExtension;
// Write the string array to a new file named fileName + "." + fileExtension
using (StreamWriter outputFile = new StreamWriter(Path.Combine(Program.appPath, file)))
{
foreach (string line in data)
{
temp = line;
}
outputFile.WriteLine(temp);
}
}
public static string[] ReadFile(string fileName, string fileExtension)
{
string temp = "";
string file = fileName + "." + fileExtension;
string[] lines = System.IO.File.ReadAllLines(Path.Combine(Program.appPath, file));
string[] output = new string[lines.Length];
for (int i = 0; i < lines.Length; i++)
{
temp = lines[i];
output[i] = temp;
}
return output;
}
/* Takes a multi-line file and turns it into a single-line string
* This is really only here because the JSON files are pretty-printed
* for human readability, but it's much easier to work with the JSON
* data as a single string rather than an array of string data*/
public static string ConvertStringArray(string[] input)
{
string output = "";
foreach (string line in input) //Loop through input and append it to the end of output
{
output += line;
}
return output;
}
#region JSON Config
/* Sources
* https://www.newtonsoft.com/json/help/html/SerializingJSON.htm
* https://www.newtonsoft.com/json/help/html/SerializeWithJsonSerializerToFile.htm
*/
public class Config
{
public string SMTP_Host { get; set; }
public int SMTP_Port { get; set; }
public string SMTP_User { get; set; }
public string SMTP_Pass { get; set; }
public string Mail_From { get; set; }
public string Mail_Subject { get; set; }
public string Mail_Body { get; set; }
public string Mail_Delivery { get; set; }
public string File_Extensions { get; set; }
public Config(string smtp_host, int smtp_port, string smtp_user, string smtp_pass, string mail_from, string mail_subject, string mail_body, string mail_delivery, string file_extensions)
{
SMTP_Host = smtp_host;
SMTP_Port = smtp_port;
SMTP_User = smtp_user;
SMTP_Pass = smtp_pass;
Mail_From = mail_from;
Mail_Subject = mail_subject;
Mail_Body = mail_body;
Mail_Delivery = mail_delivery;
File_Extensions = file_extensions;
}
}
#endregion
#endregion
}
}

60
SendEmail/Form3.resx Normal file
View File

@ -0,0 +1,60 @@
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

BIN
SendEmail/Icon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

327
SendEmail/Program.cs Normal file
View File

@ -0,0 +1,327 @@
using System;
using System.IO;
using System.Net.Mail;
using System.Windows.Forms;
using System.Globalization;
using System.Text.RegularExpressions;
using System.Collections.Generic;
namespace SendEmail
{
class Program
{
#region Global Variables
//File Explorer Path
//C:\Users\[USER]\AppData\Local\Send2Email
public static string appPath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + "\\Send2Email\\";
//My Pictures Path
//C:\Users\[USER]\My Pictures
public static string picPath = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures);
//Variables to be loaded from config file
public static string configName = "cfg";
public static string configFileExt = "json";
public static string configFileName = configName + "." + configFileExt;
public static string smtp_host;
public static int smtp_port;
public static string smtp_user;
public static string smtp_pass;
public static string mail_from;
public static string mail_subject;
public static string mail_body;
public static string mail_delivery;
public static string file_extensions;
#endregion
#region Main Method
[STAThread]
static void Main() //Main method, this runs as soon as the software is started
{
//Set up the basic requirements for a WinForms application
Application.SetHighDpiMode(HighDpiMode.SystemAware);
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
bool cont = Form3.LoadConfig(); //Load Configuration method
if (cont) //If Config exists
{
Application.Run(new Form1()); //Open Form1 (Main Window)
}
else //If Config Doesn't Exist
{
//Display an error message before closing the application
MessageBox.Show("A critical error has occurred. Configuration file is missing. Send2Email will not function without this configuration file. Please contact IT to resolve this issue.");
Application.Exit(); //Exit the application
}
}
#endregion
#region Email Methods
#region IsValidEmail
//Checks if the email address entered is valid.
//Source https://docs.microsoft.com/en-us/dotnet/standard/base-types/how-to-verify-that-strings-are-in-valid-email-format
public static bool IsValidEmail(string email) //Accepts an email string and returns true if email is valid
{
if (string.IsNullOrWhiteSpace(email)) //Null strings aren't valid so return false
return false;
try
{
// Normalize the domain
email = Regex.Replace(email, @"(@)(.+)$", DomainMapper,
RegexOptions.None, TimeSpan.FromMilliseconds(200));
// Examines the domain part of the email and normalizes it.
string DomainMapper(Match match)
{
// Use IdnMapping class to convert Unicode domain names.
var idn = new IdnMapping();
// Pull out and process domain name (throws ArgumentException on invalid)
string domainName = idn.GetAscii(match.Groups[2].Value);
return match.Groups[1].Value + domainName;
}
}
catch (RegexMatchTimeoutException)
{
return false;
}
catch (ArgumentException)
{
return false;
}
try
{
return Regex.IsMatch(email,
@"^[^@\s]+@[^@\s]+\.[^@\s]+$",
RegexOptions.IgnoreCase, TimeSpan.FromMilliseconds(250));
}
catch (RegexMatchTimeoutException)
{
return false;
}
}
#endregion
#region Attachments
//Checks files in Windows Pictures folder
//returns filepaths with matching extensions
public static string[] Attachments()
{
string[] extensions;
List<string> output = new List<string>(); //Holds the output
try
{
extensions = file_extensions.Split(",");
for (int e = 0; e < extensions.Length; e++)
{
extensions[e] = extensions[e].Trim(' '); //Remove any whitespace
}
}
catch (Exception ex)
{
MessageBox.Show("Error parsing extension " + ex + "\r\nUsing default values.\r\njpg, jpeg, png, gif, bmp, tif, pdf");
string[] fill = { "jpg", "jpeg", "tif", "gif", "bmp", "pdf" };
extensions = fill;
}
string[] files = Directory.GetFiles(picPath); //Get array of all files in Pictures folder
for (int i = 0; i < files.Length; i++) //Loop through all files
{
string file = files[i]; //current file
for(int j = 0; j < extensions.Length; j++) //Loop through all extensions for each file
{
string footer = file.Substring(file.Length - extensions[j].Length);
//If the file ends with an extension from our extensions array
if (footer.ToString() == extensions[j].ToString())
{
output.Add(files[i]); //Add it to the output
}
}
}
return output.ToArray(); //Return a list of all attachments
}
#endregion
#region Send Email
public static void Send(string sendTo) //Send email function. This is where most of the work starts
{
string[] getAttachments = Attachments(); //Gets all valid attachment files in Pictures folder
try
{
System.Net.Mail.Attachment attachment; //Create attachment variable
MailMessage mail = new MailMessage(); //Create mail variable
SmtpClient SmtpServer = new SmtpClient(smtp_host); //Create SmtpClient
//Load smtp/email settings from Configuration file
SmtpServer.Port = smtp_port;
mail.From = new MailAddress(mail_from);
mail.Subject = mail_subject;
mail.Body = mail_body;
mail.To.Add(sendTo.ToString()); //Get sendTo email from user input
for(int i = 0; i < getAttachments.Length; i++) //Loop through each attachment
{
attachment = new System.Net.Mail.Attachment(getAttachments[i]); //Set the attachment variable
mail.Attachments.Add(attachment); //Attach the new attachment to the email
}
SmtpServer.Credentials = new System.Net.NetworkCredential(smtp_user, smtp_pass); //Login to SMTP
SmtpServer.EnableSsl = true; //Use SSL Encryption
SmtpServer.Send(mail); //Send our mail variable
MessageBox.Show(mail_delivery + sendTo); //Popup informs user where the email was sent
}
catch (Exception ex) //If the Try fails the catch will output this error message.
{
MessageBox.Show("A critical error has occured please contact IT \r\n" + ex.ToString());
}
}
#endregion
#endregion
}
}
#region [ARCHIVE]
/* This code is commented out, but it might be
* useful if we ever need to work on the software
* again in the future, so I've kept it archived. */
#region [ARCHIVE] Encryption, Decryption
/*
//Methods used to encrypt and decrypt a string
//Source https://www.delftstack.com/howto/csharp/encrypt-and-decrypt-a-string-in-csharp/
public static string Encrypt(string input)
{
try
{
string textToEncrypt = input;
string ToReturn = "";
byte[] secretkeyByte = { };
secretkeyByte = System.Text.Encoding.UTF8.GetBytes(key_secret);
byte[] publickeybyte = { };
publickeybyte = System.Text.Encoding.UTF8.GetBytes(key_public);
MemoryStream ms = null;
CryptoStream cs = null;
byte[] inputbyteArray = System.Text.Encoding.UTF8.GetBytes(textToEncrypt);
using (DESCryptoServiceProvider des = new DESCryptoServiceProvider())
{
ms = new MemoryStream();
cs = new CryptoStream(ms, des.CreateEncryptor(publickeybyte, secretkeyByte), CryptoStreamMode.Write);
cs.Write(inputbyteArray, 0, inputbyteArray.Length);
cs.FlushFinalBlock();
ToReturn = Convert.ToBase64String(ms.ToArray());
}
return ToReturn;
}
catch (Exception ex)
{
throw new Exception(ex.Message, ex.InnerException);
}
}
static string Decrypt(string input)
{
try
{
string textToDecrypt = input;
string ToReturn = "";
byte[] privatekeyByte = { };
privatekeyByte = System.Text.Encoding.UTF8.GetBytes(key_secret);
byte[] publickeybyte = { };
publickeybyte = System.Text.Encoding.UTF8.GetBytes(key_public);
MemoryStream ms = null;
CryptoStream cs = null;
byte[] inputbyteArray = new byte[textToDecrypt.Replace(" ", "+").Length];
inputbyteArray = Convert.FromBase64String(textToDecrypt.Replace(" ", "+"));
using (DESCryptoServiceProvider des = new DESCryptoServiceProvider())
{
ms = new MemoryStream();
cs = new CryptoStream(ms, des.CreateDecryptor(publickeybyte, privatekeyByte), CryptoStreamMode.Write);
cs.Write(inputbyteArray, 0, inputbyteArray.Length);
cs.FlushFinalBlock();
Encoding encoding = Encoding.UTF8;
ToReturn = encoding.GetString(ms.ToArray());
}
return ToReturn;
}
catch (Exception ae)
{
throw new Exception(ae.Message, ae.InnerException);
}
}
*/
#endregion
#region [ARCHIVE] Encrypt/Decrypt Files
/*
public static void WriteEncryptedFile(string[] data, string fileName, string fileExtension)
{
string temp = "";
string file = fileName + "." + fileExtension;
// Write the string array to a new file named "WriteLines.txt".
using (StreamWriter outputFile = new StreamWriter(Path.Combine(appPath, file)))
{
foreach (string line in data)
{
temp = Encrypt(line);
}
outputFile.WriteLine(temp);
}
}
public static string[] ReadEncryptedFile(string fileName, string fileExtension)
{
string temp = "";
string file = fileName + "." + fileExtension;
string[] lines = System.IO.File.ReadAllLines(Path.Combine(appPath, file));
string[] output = new string[lines.Length];
for (int i = 0; i < lines.Length; i++)
{
temp = Decrypt(lines[i]);
output[i] = temp;
}
return output;
}
*/
#endregion
#region [ARCHIVE] Keygen
/*
//Used origonally do generate public and secret keys
public static string GenerateKey(int length)
{
//Random
Random rand = new Random();
const string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
return new string(Enumerable.Repeat(chars, length).Select(s => s[rand.Next(s.Length)]).ToArray());
}
*/
#endregion
#endregion

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
https://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration>Release</Configuration>
<Platform>Any CPU</Platform>
<PublishDir>bin\Release\netcoreapp3.1\publish\</PublishDir>
<PublishProtocol>FileSystem</PublishProtocol>
</PropertyGroup>
</Project>

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
https://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<History>True|2021-09-24T17:40:27.7262759Z;True|2021-09-24T10:57:38.6187319-04:00;</History>
</PropertyGroup>
</Project>

View File

@ -0,0 +1,18 @@
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
<UseWindowsForms>true</UseWindowsForms>
<UserSecretsId>6daf7e52-c505-4d4e-9d5d-e220057a73ca</UserSecretsId>
<ApplicationIcon>Icon.ico</ApplicationIcon>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Http.Abstractions" Version="2.2.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="3.1.13" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="5.0.0" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
</ItemGroup>
</Project>

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ShowAllFiles>true</ShowAllFiles>
<_LastSelectedProfileId>\\mcls-DC03\users\dylan\GitHub\SendEmail\SendEmail\Properties\PublishProfiles\FolderProfile.pubxml</_LastSelectedProfileId>
</PropertyGroup>
<ItemGroup>
<Compile Update="Form1.cs">
<SubType>Form</SubType>
</Compile>
<Compile Update="Form2.cs">
<SubType>Form</SubType>
</Compile>
<Compile Update="Form3.cs">
<SubType>Form</SubType>
</Compile>
</ItemGroup>
</Project>

Binary file not shown.

View File

@ -0,0 +1,263 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v3.1",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v3.1": {
"Scan2Email/1.0.0": {
"dependencies": {
"Microsoft.AspNetCore.Http.Abstractions": "2.2.0",
"Microsoft.Extensions.Configuration.UserSecrets": "3.1.13",
"Microsoft.Extensions.DependencyInjection.Abstractions": "5.0.0",
"Newtonsoft.Json": "13.0.1"
},
"runtime": {
"Scan2Email.dll": {}
}
},
"Microsoft.AspNetCore.Http.Abstractions/2.2.0": {
"dependencies": {
"Microsoft.AspNetCore.Http.Features": "2.2.0",
"System.Text.Encodings.Web": "4.5.0"
},
"runtime": {
"lib/netstandard2.0/Microsoft.AspNetCore.Http.Abstractions.dll": {
"assemblyVersion": "2.2.0.0",
"fileVersion": "2.2.0.18316"
}
}
},
"Microsoft.AspNetCore.Http.Features/2.2.0": {
"dependencies": {
"Microsoft.Extensions.Primitives": "3.1.13"
},
"runtime": {
"lib/netstandard2.0/Microsoft.AspNetCore.Http.Features.dll": {
"assemblyVersion": "2.2.0.0",
"fileVersion": "2.2.0.18316"
}
}
},
"Microsoft.Extensions.Configuration/3.1.13": {
"dependencies": {
"Microsoft.Extensions.Configuration.Abstractions": "3.1.13"
},
"runtime": {
"lib/netcoreapp3.1/Microsoft.Extensions.Configuration.dll": {
"assemblyVersion": "3.1.13.0",
"fileVersion": "3.100.1321.11604"
}
}
},
"Microsoft.Extensions.Configuration.Abstractions/3.1.13": {
"dependencies": {
"Microsoft.Extensions.Primitives": "3.1.13"
},
"runtime": {
"lib/netcoreapp3.1/Microsoft.Extensions.Configuration.Abstractions.dll": {
"assemblyVersion": "3.1.13.0",
"fileVersion": "3.100.1321.11604"
}
}
},
"Microsoft.Extensions.Configuration.FileExtensions/3.1.13": {
"dependencies": {
"Microsoft.Extensions.Configuration": "3.1.13",
"Microsoft.Extensions.FileProviders.Physical": "3.1.13"
},
"runtime": {
"lib/netcoreapp3.1/Microsoft.Extensions.Configuration.FileExtensions.dll": {
"assemblyVersion": "3.1.13.0",
"fileVersion": "3.100.1321.11604"
}
}
},
"Microsoft.Extensions.Configuration.Json/3.1.13": {
"dependencies": {
"Microsoft.Extensions.Configuration": "3.1.13",
"Microsoft.Extensions.Configuration.FileExtensions": "3.1.13"
},
"runtime": {
"lib/netcoreapp3.1/Microsoft.Extensions.Configuration.Json.dll": {
"assemblyVersion": "3.1.13.0",
"fileVersion": "3.100.1321.11604"
}
}
},
"Microsoft.Extensions.Configuration.UserSecrets/3.1.13": {
"dependencies": {
"Microsoft.Extensions.Configuration.Json": "3.1.13"
},
"runtime": {
"lib/netcoreapp3.1/Microsoft.Extensions.Configuration.UserSecrets.dll": {
"assemblyVersion": "3.1.13.0",
"fileVersion": "3.100.1321.11604"
}
}
},
"Microsoft.Extensions.DependencyInjection.Abstractions/5.0.0": {
"runtime": {
"lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.20.51904"
}
}
},
"Microsoft.Extensions.FileProviders.Abstractions/3.1.13": {
"dependencies": {
"Microsoft.Extensions.Primitives": "3.1.13"
},
"runtime": {
"lib/netcoreapp3.1/Microsoft.Extensions.FileProviders.Abstractions.dll": {
"assemblyVersion": "3.1.13.0",
"fileVersion": "3.100.1321.11604"
}
}
},
"Microsoft.Extensions.FileProviders.Physical/3.1.13": {
"dependencies": {
"Microsoft.Extensions.FileProviders.Abstractions": "3.1.13",
"Microsoft.Extensions.FileSystemGlobbing": "3.1.13"
},
"runtime": {
"lib/netcoreapp3.1/Microsoft.Extensions.FileProviders.Physical.dll": {
"assemblyVersion": "3.1.13.0",
"fileVersion": "3.100.1321.11604"
}
}
},
"Microsoft.Extensions.FileSystemGlobbing/3.1.13": {
"runtime": {
"lib/netstandard2.0/Microsoft.Extensions.FileSystemGlobbing.dll": {
"assemblyVersion": "3.1.13.0",
"fileVersion": "3.100.1321.11604"
}
}
},
"Microsoft.Extensions.Primitives/3.1.13": {
"runtime": {
"lib/netcoreapp3.1/Microsoft.Extensions.Primitives.dll": {
"assemblyVersion": "3.1.13.0",
"fileVersion": "3.100.1321.11604"
}
}
},
"Newtonsoft.Json/13.0.1": {
"runtime": {
"lib/netstandard2.0/Newtonsoft.Json.dll": {
"assemblyVersion": "13.0.0.0",
"fileVersion": "13.0.1.25517"
}
}
},
"System.Text.Encodings.Web/4.5.0": {}
}
},
"libraries": {
"Scan2Email/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Microsoft.AspNetCore.Http.Abstractions/2.2.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Nxs7Z1q3f1STfLYKJSVXCs1iBl+Ya6E8o4Oy1bCxJ/rNI44E/0f6tbsrVqAWfB7jlnJfyaAtIalBVxPKUPQb4Q==",
"path": "microsoft.aspnetcore.http.abstractions/2.2.0",
"hashPath": "microsoft.aspnetcore.http.abstractions.2.2.0.nupkg.sha512"
},
"Microsoft.AspNetCore.Http.Features/2.2.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ziFz5zH8f33En4dX81LW84I6XrYXKf9jg6aM39cM+LffN9KJahViKZ61dGMSO2gd3e+qe5yBRwsesvyqlZaSMg==",
"path": "microsoft.aspnetcore.http.features/2.2.0",
"hashPath": "microsoft.aspnetcore.http.features.2.2.0.nupkg.sha512"
},
"Microsoft.Extensions.Configuration/3.1.13": {
"type": "package",
"serviceable": true,
"sha512": "sha512-zuvjW34EpCfGrpDe6e9o/8xJ5idf2PnejmGiPjBQesdw32yBOaegTwLmPtoW70RUIYr58j8EDGf7yTaFSc6KXA==",
"path": "microsoft.extensions.configuration/3.1.13",
"hashPath": "microsoft.extensions.configuration.3.1.13.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.Abstractions/3.1.13": {
"type": "package",
"serviceable": true,
"sha512": "sha512-WuU1zMRpNrRihLP0HAwm5rWqgdJUywESu3e38FDRsnx2V/FlN+tOf04bZNnimKmFfwF+wdsxlQjKBBye6EEOZw==",
"path": "microsoft.extensions.configuration.abstractions/3.1.13",
"hashPath": "microsoft.extensions.configuration.abstractions.3.1.13.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.FileExtensions/3.1.13": {
"type": "package",
"serviceable": true,
"sha512": "sha512-3BghtPRGlXgNkTLI2o9kKgf7bG5F7F5YEUJ1nxvlG9Ri9udNTML9ItCpwQb+wX6Wgr8O9uFhlX7jD7oxBb8FRA==",
"path": "microsoft.extensions.configuration.fileextensions/3.1.13",
"hashPath": "microsoft.extensions.configuration.fileextensions.3.1.13.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.Json/3.1.13": {
"type": "package",
"serviceable": true,
"sha512": "sha512-BIU+aJDx3gSe9fE4CmAfUrz6X0mHpFB1hIyS9z1MZqpn7e49uTZ1AH8XOu09YVsK3ceIYNINjJ5tkAi5ANIyQw==",
"path": "microsoft.extensions.configuration.json/3.1.13",
"hashPath": "microsoft.extensions.configuration.json.3.1.13.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.UserSecrets/3.1.13": {
"type": "package",
"serviceable": true,
"sha512": "sha512-s+L9eTjSDVHo3zeAI++KWmnZe3ijt840RHHjvICdCDiYdV3TNF6YduyweVK8KrYHaWLxaHL1GlF2Y/PezKafcA==",
"path": "microsoft.extensions.configuration.usersecrets/3.1.13",
"hashPath": "microsoft.extensions.configuration.usersecrets.3.1.13.nupkg.sha512"
},
"Microsoft.Extensions.DependencyInjection.Abstractions/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ORj7Zh81gC69TyvmcUm9tSzytcy8AVousi+IVRAI8nLieQjOFryRusSFh7+aLk16FN9pQNqJAiMd7BTKINK0kA==",
"path": "microsoft.extensions.dependencyinjection.abstractions/5.0.0",
"hashPath": "microsoft.extensions.dependencyinjection.abstractions.5.0.0.nupkg.sha512"
},
"Microsoft.Extensions.FileProviders.Abstractions/3.1.13": {
"type": "package",
"serviceable": true,
"sha512": "sha512-/sDiRV2TKE7hsgwsL+1w8Dz0Zu+41Dyu4zmO+PeYrdfBY5dXkE8kLKgRoVtg28LT6USJh0MLJtlzGco5bwc6bA==",
"path": "microsoft.extensions.fileproviders.abstractions/3.1.13",
"hashPath": "microsoft.extensions.fileproviders.abstractions.3.1.13.nupkg.sha512"
},
"Microsoft.Extensions.FileProviders.Physical/3.1.13": {
"type": "package",
"serviceable": true,
"sha512": "sha512-k3GEtPSjvhd1/xlzt29e5pZWdbUHeG6swwizDgb0WGbOTUHnqU6xtM4r3RnlJLh7q5ZULT8+B51sssMXfk1xMQ==",
"path": "microsoft.extensions.fileproviders.physical/3.1.13",
"hashPath": "microsoft.extensions.fileproviders.physical.3.1.13.nupkg.sha512"
},
"Microsoft.Extensions.FileSystemGlobbing/3.1.13": {
"type": "package",
"serviceable": true,
"sha512": "sha512-hqHzm/eljL8Kv7wRqGr7RtdJhwWge7+AzsuUOiDsylV3yDVZjyPYfdgvUc+AfGYRry+3DaKKFpEWkDptqkInyQ==",
"path": "microsoft.extensions.filesystemglobbing/3.1.13",
"hashPath": "microsoft.extensions.filesystemglobbing.3.1.13.nupkg.sha512"
},
"Microsoft.Extensions.Primitives/3.1.13": {
"type": "package",
"serviceable": true,
"sha512": "sha512-cZVp49xwQPVWs+utx6khnnECWQtkHaFXQnMg/odvy1RUumFUkO6h6C19fJd5zUclC4cS6aIfVJs7b1CDL1ep0A==",
"path": "microsoft.extensions.primitives/3.1.13",
"hashPath": "microsoft.extensions.primitives.3.1.13.nupkg.sha512"
},
"Newtonsoft.Json/13.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==",
"path": "newtonsoft.json/13.0.1",
"hashPath": "newtonsoft.json.13.0.1.nupkg.sha512"
},
"System.Text.Encodings.Web/4.5.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Xg4G4Indi4dqP1iuAiMSwpiWS54ZghzR644OtsRCm/m/lBMG8dUBhLVN7hLm8NNrNTR+iGbshCPTwrvxZPlm4g==",
"path": "system.text.encodings.web/4.5.0",
"hashPath": "system.text.encodings.web.4.5.0.nupkg.sha512"
}
}
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,9 @@
{
"runtimeOptions": {
"additionalProbingPaths": [
"C:\\Users\\dylan\\.dotnet\\store\\|arch|\\|tfm|",
"C:\\Users\\dylan\\.nuget\\packages",
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
]
}
}

View File

@ -0,0 +1,9 @@
{
"runtimeOptions": {
"tfm": "netcoreapp3.1",
"framework": {
"name": "Microsoft.WindowsDesktop.App",
"version": "3.1.0"
}
}
}

View File

@ -0,0 +1,263 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v3.1",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v3.1": {
"SendEmail/1.0.0": {
"dependencies": {
"Microsoft.AspNetCore.Http.Abstractions": "2.2.0",
"Microsoft.Extensions.Configuration.UserSecrets": "3.1.13",
"Microsoft.Extensions.DependencyInjection.Abstractions": "5.0.0",
"Newtonsoft.Json": "13.0.1"
},
"runtime": {
"SendEmail.dll": {}
}
},
"Microsoft.AspNetCore.Http.Abstractions/2.2.0": {
"dependencies": {
"Microsoft.AspNetCore.Http.Features": "2.2.0",
"System.Text.Encodings.Web": "4.5.0"
},
"runtime": {
"lib/netstandard2.0/Microsoft.AspNetCore.Http.Abstractions.dll": {
"assemblyVersion": "2.2.0.0",
"fileVersion": "2.2.0.18316"
}
}
},
"Microsoft.AspNetCore.Http.Features/2.2.0": {
"dependencies": {
"Microsoft.Extensions.Primitives": "3.1.13"
},
"runtime": {
"lib/netstandard2.0/Microsoft.AspNetCore.Http.Features.dll": {
"assemblyVersion": "2.2.0.0",
"fileVersion": "2.2.0.18316"
}
}
},
"Microsoft.Extensions.Configuration/3.1.13": {
"dependencies": {
"Microsoft.Extensions.Configuration.Abstractions": "3.1.13"
},
"runtime": {
"lib/netcoreapp3.1/Microsoft.Extensions.Configuration.dll": {
"assemblyVersion": "3.1.13.0",
"fileVersion": "3.100.1321.11604"
}
}
},
"Microsoft.Extensions.Configuration.Abstractions/3.1.13": {
"dependencies": {
"Microsoft.Extensions.Primitives": "3.1.13"
},
"runtime": {
"lib/netcoreapp3.1/Microsoft.Extensions.Configuration.Abstractions.dll": {
"assemblyVersion": "3.1.13.0",
"fileVersion": "3.100.1321.11604"
}
}
},
"Microsoft.Extensions.Configuration.FileExtensions/3.1.13": {
"dependencies": {
"Microsoft.Extensions.Configuration": "3.1.13",
"Microsoft.Extensions.FileProviders.Physical": "3.1.13"
},
"runtime": {
"lib/netcoreapp3.1/Microsoft.Extensions.Configuration.FileExtensions.dll": {
"assemblyVersion": "3.1.13.0",
"fileVersion": "3.100.1321.11604"
}
}
},
"Microsoft.Extensions.Configuration.Json/3.1.13": {
"dependencies": {
"Microsoft.Extensions.Configuration": "3.1.13",
"Microsoft.Extensions.Configuration.FileExtensions": "3.1.13"
},
"runtime": {
"lib/netcoreapp3.1/Microsoft.Extensions.Configuration.Json.dll": {
"assemblyVersion": "3.1.13.0",
"fileVersion": "3.100.1321.11604"
}
}
},
"Microsoft.Extensions.Configuration.UserSecrets/3.1.13": {
"dependencies": {
"Microsoft.Extensions.Configuration.Json": "3.1.13"
},
"runtime": {
"lib/netcoreapp3.1/Microsoft.Extensions.Configuration.UserSecrets.dll": {
"assemblyVersion": "3.1.13.0",
"fileVersion": "3.100.1321.11604"
}
}
},
"Microsoft.Extensions.DependencyInjection.Abstractions/5.0.0": {
"runtime": {
"lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.20.51904"
}
}
},
"Microsoft.Extensions.FileProviders.Abstractions/3.1.13": {
"dependencies": {
"Microsoft.Extensions.Primitives": "3.1.13"
},
"runtime": {
"lib/netcoreapp3.1/Microsoft.Extensions.FileProviders.Abstractions.dll": {
"assemblyVersion": "3.1.13.0",
"fileVersion": "3.100.1321.11604"
}
}
},
"Microsoft.Extensions.FileProviders.Physical/3.1.13": {
"dependencies": {
"Microsoft.Extensions.FileProviders.Abstractions": "3.1.13",
"Microsoft.Extensions.FileSystemGlobbing": "3.1.13"
},
"runtime": {
"lib/netcoreapp3.1/Microsoft.Extensions.FileProviders.Physical.dll": {
"assemblyVersion": "3.1.13.0",
"fileVersion": "3.100.1321.11604"
}
}
},
"Microsoft.Extensions.FileSystemGlobbing/3.1.13": {
"runtime": {
"lib/netstandard2.0/Microsoft.Extensions.FileSystemGlobbing.dll": {
"assemblyVersion": "3.1.13.0",
"fileVersion": "3.100.1321.11604"
}
}
},
"Microsoft.Extensions.Primitives/3.1.13": {
"runtime": {
"lib/netcoreapp3.1/Microsoft.Extensions.Primitives.dll": {
"assemblyVersion": "3.1.13.0",
"fileVersion": "3.100.1321.11604"
}
}
},
"Newtonsoft.Json/13.0.1": {
"runtime": {
"lib/netstandard2.0/Newtonsoft.Json.dll": {
"assemblyVersion": "13.0.0.0",
"fileVersion": "13.0.1.25517"
}
}
},
"System.Text.Encodings.Web/4.5.0": {}
}
},
"libraries": {
"SendEmail/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Microsoft.AspNetCore.Http.Abstractions/2.2.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Nxs7Z1q3f1STfLYKJSVXCs1iBl+Ya6E8o4Oy1bCxJ/rNI44E/0f6tbsrVqAWfB7jlnJfyaAtIalBVxPKUPQb4Q==",
"path": "microsoft.aspnetcore.http.abstractions/2.2.0",
"hashPath": "microsoft.aspnetcore.http.abstractions.2.2.0.nupkg.sha512"
},
"Microsoft.AspNetCore.Http.Features/2.2.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ziFz5zH8f33En4dX81LW84I6XrYXKf9jg6aM39cM+LffN9KJahViKZ61dGMSO2gd3e+qe5yBRwsesvyqlZaSMg==",
"path": "microsoft.aspnetcore.http.features/2.2.0",
"hashPath": "microsoft.aspnetcore.http.features.2.2.0.nupkg.sha512"
},
"Microsoft.Extensions.Configuration/3.1.13": {
"type": "package",
"serviceable": true,
"sha512": "sha512-zuvjW34EpCfGrpDe6e9o/8xJ5idf2PnejmGiPjBQesdw32yBOaegTwLmPtoW70RUIYr58j8EDGf7yTaFSc6KXA==",
"path": "microsoft.extensions.configuration/3.1.13",
"hashPath": "microsoft.extensions.configuration.3.1.13.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.Abstractions/3.1.13": {
"type": "package",
"serviceable": true,
"sha512": "sha512-WuU1zMRpNrRihLP0HAwm5rWqgdJUywESu3e38FDRsnx2V/FlN+tOf04bZNnimKmFfwF+wdsxlQjKBBye6EEOZw==",
"path": "microsoft.extensions.configuration.abstractions/3.1.13",
"hashPath": "microsoft.extensions.configuration.abstractions.3.1.13.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.FileExtensions/3.1.13": {
"type": "package",
"serviceable": true,
"sha512": "sha512-3BghtPRGlXgNkTLI2o9kKgf7bG5F7F5YEUJ1nxvlG9Ri9udNTML9ItCpwQb+wX6Wgr8O9uFhlX7jD7oxBb8FRA==",
"path": "microsoft.extensions.configuration.fileextensions/3.1.13",
"hashPath": "microsoft.extensions.configuration.fileextensions.3.1.13.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.Json/3.1.13": {
"type": "package",
"serviceable": true,
"sha512": "sha512-BIU+aJDx3gSe9fE4CmAfUrz6X0mHpFB1hIyS9z1MZqpn7e49uTZ1AH8XOu09YVsK3ceIYNINjJ5tkAi5ANIyQw==",
"path": "microsoft.extensions.configuration.json/3.1.13",
"hashPath": "microsoft.extensions.configuration.json.3.1.13.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.UserSecrets/3.1.13": {
"type": "package",
"serviceable": true,
"sha512": "sha512-s+L9eTjSDVHo3zeAI++KWmnZe3ijt840RHHjvICdCDiYdV3TNF6YduyweVK8KrYHaWLxaHL1GlF2Y/PezKafcA==",
"path": "microsoft.extensions.configuration.usersecrets/3.1.13",
"hashPath": "microsoft.extensions.configuration.usersecrets.3.1.13.nupkg.sha512"
},
"Microsoft.Extensions.DependencyInjection.Abstractions/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ORj7Zh81gC69TyvmcUm9tSzytcy8AVousi+IVRAI8nLieQjOFryRusSFh7+aLk16FN9pQNqJAiMd7BTKINK0kA==",
"path": "microsoft.extensions.dependencyinjection.abstractions/5.0.0",
"hashPath": "microsoft.extensions.dependencyinjection.abstractions.5.0.0.nupkg.sha512"
},
"Microsoft.Extensions.FileProviders.Abstractions/3.1.13": {
"type": "package",
"serviceable": true,
"sha512": "sha512-/sDiRV2TKE7hsgwsL+1w8Dz0Zu+41Dyu4zmO+PeYrdfBY5dXkE8kLKgRoVtg28LT6USJh0MLJtlzGco5bwc6bA==",
"path": "microsoft.extensions.fileproviders.abstractions/3.1.13",
"hashPath": "microsoft.extensions.fileproviders.abstractions.3.1.13.nupkg.sha512"
},
"Microsoft.Extensions.FileProviders.Physical/3.1.13": {
"type": "package",
"serviceable": true,
"sha512": "sha512-k3GEtPSjvhd1/xlzt29e5pZWdbUHeG6swwizDgb0WGbOTUHnqU6xtM4r3RnlJLh7q5ZULT8+B51sssMXfk1xMQ==",
"path": "microsoft.extensions.fileproviders.physical/3.1.13",
"hashPath": "microsoft.extensions.fileproviders.physical.3.1.13.nupkg.sha512"
},
"Microsoft.Extensions.FileSystemGlobbing/3.1.13": {
"type": "package",
"serviceable": true,
"sha512": "sha512-hqHzm/eljL8Kv7wRqGr7RtdJhwWge7+AzsuUOiDsylV3yDVZjyPYfdgvUc+AfGYRry+3DaKKFpEWkDptqkInyQ==",
"path": "microsoft.extensions.filesystemglobbing/3.1.13",
"hashPath": "microsoft.extensions.filesystemglobbing.3.1.13.nupkg.sha512"
},
"Microsoft.Extensions.Primitives/3.1.13": {
"type": "package",
"serviceable": true,
"sha512": "sha512-cZVp49xwQPVWs+utx6khnnECWQtkHaFXQnMg/odvy1RUumFUkO6h6C19fJd5zUclC4cS6aIfVJs7b1CDL1ep0A==",
"path": "microsoft.extensions.primitives/3.1.13",
"hashPath": "microsoft.extensions.primitives.3.1.13.nupkg.sha512"
},
"Newtonsoft.Json/13.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==",
"path": "newtonsoft.json/13.0.1",
"hashPath": "newtonsoft.json.13.0.1.nupkg.sha512"
},
"System.Text.Encodings.Web/4.5.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Xg4G4Indi4dqP1iuAiMSwpiWS54ZghzR644OtsRCm/m/lBMG8dUBhLVN7hLm8NNrNTR+iGbshCPTwrvxZPlm4g==",
"path": "system.text.encodings.web/4.5.0",
"hashPath": "system.text.encodings.web.4.5.0.nupkg.sha512"
}
}
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,9 @@
{
"runtimeOptions": {
"additionalProbingPaths": [
"C:\\Users\\dylan\\.dotnet\\store\\|arch|\\|tfm|",
"C:\\Users\\dylan\\.nuget\\packages",
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
]
}
}

View File

@ -0,0 +1,9 @@
{
"runtimeOptions": {
"tfm": "netcoreapp3.1",
"framework": {
"name": "Microsoft.WindowsDesktop.App",
"version": "3.1.0"
}
}
}

View File

@ -0,0 +1,263 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v3.1",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v3.1": {
"Scan2Email/1.0.0": {
"dependencies": {
"Microsoft.AspNetCore.Http.Abstractions": "2.2.0",
"Microsoft.Extensions.Configuration.UserSecrets": "3.1.13",
"Microsoft.Extensions.DependencyInjection.Abstractions": "5.0.0",
"Newtonsoft.Json": "13.0.1"
},
"runtime": {
"Scan2Email.dll": {}
}
},
"Microsoft.AspNetCore.Http.Abstractions/2.2.0": {
"dependencies": {
"Microsoft.AspNetCore.Http.Features": "2.2.0",
"System.Text.Encodings.Web": "4.5.0"
},
"runtime": {
"lib/netstandard2.0/Microsoft.AspNetCore.Http.Abstractions.dll": {
"assemblyVersion": "2.2.0.0",
"fileVersion": "2.2.0.18316"
}
}
},
"Microsoft.AspNetCore.Http.Features/2.2.0": {
"dependencies": {
"Microsoft.Extensions.Primitives": "3.1.13"
},
"runtime": {
"lib/netstandard2.0/Microsoft.AspNetCore.Http.Features.dll": {
"assemblyVersion": "2.2.0.0",
"fileVersion": "2.2.0.18316"
}
}
},
"Microsoft.Extensions.Configuration/3.1.13": {
"dependencies": {
"Microsoft.Extensions.Configuration.Abstractions": "3.1.13"
},
"runtime": {
"lib/netcoreapp3.1/Microsoft.Extensions.Configuration.dll": {
"assemblyVersion": "3.1.13.0",
"fileVersion": "3.100.1321.11604"
}
}
},
"Microsoft.Extensions.Configuration.Abstractions/3.1.13": {
"dependencies": {
"Microsoft.Extensions.Primitives": "3.1.13"
},
"runtime": {
"lib/netcoreapp3.1/Microsoft.Extensions.Configuration.Abstractions.dll": {
"assemblyVersion": "3.1.13.0",
"fileVersion": "3.100.1321.11604"
}
}
},
"Microsoft.Extensions.Configuration.FileExtensions/3.1.13": {
"dependencies": {
"Microsoft.Extensions.Configuration": "3.1.13",
"Microsoft.Extensions.FileProviders.Physical": "3.1.13"
},
"runtime": {
"lib/netcoreapp3.1/Microsoft.Extensions.Configuration.FileExtensions.dll": {
"assemblyVersion": "3.1.13.0",
"fileVersion": "3.100.1321.11604"
}
}
},
"Microsoft.Extensions.Configuration.Json/3.1.13": {
"dependencies": {
"Microsoft.Extensions.Configuration": "3.1.13",
"Microsoft.Extensions.Configuration.FileExtensions": "3.1.13"
},
"runtime": {
"lib/netcoreapp3.1/Microsoft.Extensions.Configuration.Json.dll": {
"assemblyVersion": "3.1.13.0",
"fileVersion": "3.100.1321.11604"
}
}
},
"Microsoft.Extensions.Configuration.UserSecrets/3.1.13": {
"dependencies": {
"Microsoft.Extensions.Configuration.Json": "3.1.13"
},
"runtime": {
"lib/netcoreapp3.1/Microsoft.Extensions.Configuration.UserSecrets.dll": {
"assemblyVersion": "3.1.13.0",
"fileVersion": "3.100.1321.11604"
}
}
},
"Microsoft.Extensions.DependencyInjection.Abstractions/5.0.0": {
"runtime": {
"lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.20.51904"
}
}
},
"Microsoft.Extensions.FileProviders.Abstractions/3.1.13": {
"dependencies": {
"Microsoft.Extensions.Primitives": "3.1.13"
},
"runtime": {
"lib/netcoreapp3.1/Microsoft.Extensions.FileProviders.Abstractions.dll": {
"assemblyVersion": "3.1.13.0",
"fileVersion": "3.100.1321.11604"
}
}
},
"Microsoft.Extensions.FileProviders.Physical/3.1.13": {
"dependencies": {
"Microsoft.Extensions.FileProviders.Abstractions": "3.1.13",
"Microsoft.Extensions.FileSystemGlobbing": "3.1.13"
},
"runtime": {
"lib/netcoreapp3.1/Microsoft.Extensions.FileProviders.Physical.dll": {
"assemblyVersion": "3.1.13.0",
"fileVersion": "3.100.1321.11604"
}
}
},
"Microsoft.Extensions.FileSystemGlobbing/3.1.13": {
"runtime": {
"lib/netstandard2.0/Microsoft.Extensions.FileSystemGlobbing.dll": {
"assemblyVersion": "3.1.13.0",
"fileVersion": "3.100.1321.11604"
}
}
},
"Microsoft.Extensions.Primitives/3.1.13": {
"runtime": {
"lib/netcoreapp3.1/Microsoft.Extensions.Primitives.dll": {
"assemblyVersion": "3.1.13.0",
"fileVersion": "3.100.1321.11604"
}
}
},
"Newtonsoft.Json/13.0.1": {
"runtime": {
"lib/netstandard2.0/Newtonsoft.Json.dll": {
"assemblyVersion": "13.0.0.0",
"fileVersion": "13.0.1.25517"
}
}
},
"System.Text.Encodings.Web/4.5.0": {}
}
},
"libraries": {
"Scan2Email/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Microsoft.AspNetCore.Http.Abstractions/2.2.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Nxs7Z1q3f1STfLYKJSVXCs1iBl+Ya6E8o4Oy1bCxJ/rNI44E/0f6tbsrVqAWfB7jlnJfyaAtIalBVxPKUPQb4Q==",
"path": "microsoft.aspnetcore.http.abstractions/2.2.0",
"hashPath": "microsoft.aspnetcore.http.abstractions.2.2.0.nupkg.sha512"
},
"Microsoft.AspNetCore.Http.Features/2.2.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ziFz5zH8f33En4dX81LW84I6XrYXKf9jg6aM39cM+LffN9KJahViKZ61dGMSO2gd3e+qe5yBRwsesvyqlZaSMg==",
"path": "microsoft.aspnetcore.http.features/2.2.0",
"hashPath": "microsoft.aspnetcore.http.features.2.2.0.nupkg.sha512"
},
"Microsoft.Extensions.Configuration/3.1.13": {
"type": "package",
"serviceable": true,
"sha512": "sha512-zuvjW34EpCfGrpDe6e9o/8xJ5idf2PnejmGiPjBQesdw32yBOaegTwLmPtoW70RUIYr58j8EDGf7yTaFSc6KXA==",
"path": "microsoft.extensions.configuration/3.1.13",
"hashPath": "microsoft.extensions.configuration.3.1.13.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.Abstractions/3.1.13": {
"type": "package",
"serviceable": true,
"sha512": "sha512-WuU1zMRpNrRihLP0HAwm5rWqgdJUywESu3e38FDRsnx2V/FlN+tOf04bZNnimKmFfwF+wdsxlQjKBBye6EEOZw==",
"path": "microsoft.extensions.configuration.abstractions/3.1.13",
"hashPath": "microsoft.extensions.configuration.abstractions.3.1.13.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.FileExtensions/3.1.13": {
"type": "package",
"serviceable": true,
"sha512": "sha512-3BghtPRGlXgNkTLI2o9kKgf7bG5F7F5YEUJ1nxvlG9Ri9udNTML9ItCpwQb+wX6Wgr8O9uFhlX7jD7oxBb8FRA==",
"path": "microsoft.extensions.configuration.fileextensions/3.1.13",
"hashPath": "microsoft.extensions.configuration.fileextensions.3.1.13.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.Json/3.1.13": {
"type": "package",
"serviceable": true,
"sha512": "sha512-BIU+aJDx3gSe9fE4CmAfUrz6X0mHpFB1hIyS9z1MZqpn7e49uTZ1AH8XOu09YVsK3ceIYNINjJ5tkAi5ANIyQw==",
"path": "microsoft.extensions.configuration.json/3.1.13",
"hashPath": "microsoft.extensions.configuration.json.3.1.13.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.UserSecrets/3.1.13": {
"type": "package",
"serviceable": true,
"sha512": "sha512-s+L9eTjSDVHo3zeAI++KWmnZe3ijt840RHHjvICdCDiYdV3TNF6YduyweVK8KrYHaWLxaHL1GlF2Y/PezKafcA==",
"path": "microsoft.extensions.configuration.usersecrets/3.1.13",
"hashPath": "microsoft.extensions.configuration.usersecrets.3.1.13.nupkg.sha512"
},
"Microsoft.Extensions.DependencyInjection.Abstractions/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ORj7Zh81gC69TyvmcUm9tSzytcy8AVousi+IVRAI8nLieQjOFryRusSFh7+aLk16FN9pQNqJAiMd7BTKINK0kA==",
"path": "microsoft.extensions.dependencyinjection.abstractions/5.0.0",
"hashPath": "microsoft.extensions.dependencyinjection.abstractions.5.0.0.nupkg.sha512"
},
"Microsoft.Extensions.FileProviders.Abstractions/3.1.13": {
"type": "package",
"serviceable": true,
"sha512": "sha512-/sDiRV2TKE7hsgwsL+1w8Dz0Zu+41Dyu4zmO+PeYrdfBY5dXkE8kLKgRoVtg28LT6USJh0MLJtlzGco5bwc6bA==",
"path": "microsoft.extensions.fileproviders.abstractions/3.1.13",
"hashPath": "microsoft.extensions.fileproviders.abstractions.3.1.13.nupkg.sha512"
},
"Microsoft.Extensions.FileProviders.Physical/3.1.13": {
"type": "package",
"serviceable": true,
"sha512": "sha512-k3GEtPSjvhd1/xlzt29e5pZWdbUHeG6swwizDgb0WGbOTUHnqU6xtM4r3RnlJLh7q5ZULT8+B51sssMXfk1xMQ==",
"path": "microsoft.extensions.fileproviders.physical/3.1.13",
"hashPath": "microsoft.extensions.fileproviders.physical.3.1.13.nupkg.sha512"
},
"Microsoft.Extensions.FileSystemGlobbing/3.1.13": {
"type": "package",
"serviceable": true,
"sha512": "sha512-hqHzm/eljL8Kv7wRqGr7RtdJhwWge7+AzsuUOiDsylV3yDVZjyPYfdgvUc+AfGYRry+3DaKKFpEWkDptqkInyQ==",
"path": "microsoft.extensions.filesystemglobbing/3.1.13",
"hashPath": "microsoft.extensions.filesystemglobbing.3.1.13.nupkg.sha512"
},
"Microsoft.Extensions.Primitives/3.1.13": {
"type": "package",
"serviceable": true,
"sha512": "sha512-cZVp49xwQPVWs+utx6khnnECWQtkHaFXQnMg/odvy1RUumFUkO6h6C19fJd5zUclC4cS6aIfVJs7b1CDL1ep0A==",
"path": "microsoft.extensions.primitives/3.1.13",
"hashPath": "microsoft.extensions.primitives.3.1.13.nupkg.sha512"
},
"Newtonsoft.Json/13.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==",
"path": "newtonsoft.json/13.0.1",
"hashPath": "newtonsoft.json.13.0.1.nupkg.sha512"
},
"System.Text.Encodings.Web/4.5.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Xg4G4Indi4dqP1iuAiMSwpiWS54ZghzR644OtsRCm/m/lBMG8dUBhLVN7hLm8NNrNTR+iGbshCPTwrvxZPlm4g==",
"path": "system.text.encodings.web/4.5.0",
"hashPath": "system.text.encodings.web.4.5.0.nupkg.sha512"
}
}
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,9 @@
{
"runtimeOptions": {
"additionalProbingPaths": [
"C:\\Users\\dylan\\.dotnet\\store\\|arch|\\|tfm|",
"C:\\Users\\dylan\\.nuget\\packages",
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
]
}
}

View File

@ -0,0 +1,9 @@
{
"runtimeOptions": {
"tfm": "netcoreapp3.1",
"framework": {
"name": "Microsoft.WindowsDesktop.App",
"version": "3.1.0"
}
}
}

View File

@ -0,0 +1,263 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v3.1",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v3.1": {
"Scan2Email/1.0.0": {
"dependencies": {
"Microsoft.AspNetCore.Http.Abstractions": "2.2.0",
"Microsoft.Extensions.Configuration.UserSecrets": "3.1.13",
"Microsoft.Extensions.DependencyInjection.Abstractions": "5.0.0",
"Newtonsoft.Json": "13.0.1"
},
"runtime": {
"Scan2Email.dll": {}
}
},
"Microsoft.AspNetCore.Http.Abstractions/2.2.0": {
"dependencies": {
"Microsoft.AspNetCore.Http.Features": "2.2.0",
"System.Text.Encodings.Web": "4.5.0"
},
"runtime": {
"lib/netstandard2.0/Microsoft.AspNetCore.Http.Abstractions.dll": {
"assemblyVersion": "2.2.0.0",
"fileVersion": "2.2.0.18316"
}
}
},
"Microsoft.AspNetCore.Http.Features/2.2.0": {
"dependencies": {
"Microsoft.Extensions.Primitives": "3.1.13"
},
"runtime": {
"lib/netstandard2.0/Microsoft.AspNetCore.Http.Features.dll": {
"assemblyVersion": "2.2.0.0",
"fileVersion": "2.2.0.18316"
}
}
},
"Microsoft.Extensions.Configuration/3.1.13": {
"dependencies": {
"Microsoft.Extensions.Configuration.Abstractions": "3.1.13"
},
"runtime": {
"lib/netcoreapp3.1/Microsoft.Extensions.Configuration.dll": {
"assemblyVersion": "3.1.13.0",
"fileVersion": "3.100.1321.11604"
}
}
},
"Microsoft.Extensions.Configuration.Abstractions/3.1.13": {
"dependencies": {
"Microsoft.Extensions.Primitives": "3.1.13"
},
"runtime": {
"lib/netcoreapp3.1/Microsoft.Extensions.Configuration.Abstractions.dll": {
"assemblyVersion": "3.1.13.0",
"fileVersion": "3.100.1321.11604"
}
}
},
"Microsoft.Extensions.Configuration.FileExtensions/3.1.13": {
"dependencies": {
"Microsoft.Extensions.Configuration": "3.1.13",
"Microsoft.Extensions.FileProviders.Physical": "3.1.13"
},
"runtime": {
"lib/netcoreapp3.1/Microsoft.Extensions.Configuration.FileExtensions.dll": {
"assemblyVersion": "3.1.13.0",
"fileVersion": "3.100.1321.11604"
}
}
},
"Microsoft.Extensions.Configuration.Json/3.1.13": {
"dependencies": {
"Microsoft.Extensions.Configuration": "3.1.13",
"Microsoft.Extensions.Configuration.FileExtensions": "3.1.13"
},
"runtime": {
"lib/netcoreapp3.1/Microsoft.Extensions.Configuration.Json.dll": {
"assemblyVersion": "3.1.13.0",
"fileVersion": "3.100.1321.11604"
}
}
},
"Microsoft.Extensions.Configuration.UserSecrets/3.1.13": {
"dependencies": {
"Microsoft.Extensions.Configuration.Json": "3.1.13"
},
"runtime": {
"lib/netcoreapp3.1/Microsoft.Extensions.Configuration.UserSecrets.dll": {
"assemblyVersion": "3.1.13.0",
"fileVersion": "3.100.1321.11604"
}
}
},
"Microsoft.Extensions.DependencyInjection.Abstractions/5.0.0": {
"runtime": {
"lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.20.51904"
}
}
},
"Microsoft.Extensions.FileProviders.Abstractions/3.1.13": {
"dependencies": {
"Microsoft.Extensions.Primitives": "3.1.13"
},
"runtime": {
"lib/netcoreapp3.1/Microsoft.Extensions.FileProviders.Abstractions.dll": {
"assemblyVersion": "3.1.13.0",
"fileVersion": "3.100.1321.11604"
}
}
},
"Microsoft.Extensions.FileProviders.Physical/3.1.13": {
"dependencies": {
"Microsoft.Extensions.FileProviders.Abstractions": "3.1.13",
"Microsoft.Extensions.FileSystemGlobbing": "3.1.13"
},
"runtime": {
"lib/netcoreapp3.1/Microsoft.Extensions.FileProviders.Physical.dll": {
"assemblyVersion": "3.1.13.0",
"fileVersion": "3.100.1321.11604"
}
}
},
"Microsoft.Extensions.FileSystemGlobbing/3.1.13": {
"runtime": {
"lib/netstandard2.0/Microsoft.Extensions.FileSystemGlobbing.dll": {
"assemblyVersion": "3.1.13.0",
"fileVersion": "3.100.1321.11604"
}
}
},
"Microsoft.Extensions.Primitives/3.1.13": {
"runtime": {
"lib/netcoreapp3.1/Microsoft.Extensions.Primitives.dll": {
"assemblyVersion": "3.1.13.0",
"fileVersion": "3.100.1321.11604"
}
}
},
"Newtonsoft.Json/13.0.1": {
"runtime": {
"lib/netstandard2.0/Newtonsoft.Json.dll": {
"assemblyVersion": "13.0.0.0",
"fileVersion": "13.0.1.25517"
}
}
},
"System.Text.Encodings.Web/4.5.0": {}
}
},
"libraries": {
"Scan2Email/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Microsoft.AspNetCore.Http.Abstractions/2.2.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Nxs7Z1q3f1STfLYKJSVXCs1iBl+Ya6E8o4Oy1bCxJ/rNI44E/0f6tbsrVqAWfB7jlnJfyaAtIalBVxPKUPQb4Q==",
"path": "microsoft.aspnetcore.http.abstractions/2.2.0",
"hashPath": "microsoft.aspnetcore.http.abstractions.2.2.0.nupkg.sha512"
},
"Microsoft.AspNetCore.Http.Features/2.2.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ziFz5zH8f33En4dX81LW84I6XrYXKf9jg6aM39cM+LffN9KJahViKZ61dGMSO2gd3e+qe5yBRwsesvyqlZaSMg==",
"path": "microsoft.aspnetcore.http.features/2.2.0",
"hashPath": "microsoft.aspnetcore.http.features.2.2.0.nupkg.sha512"
},
"Microsoft.Extensions.Configuration/3.1.13": {
"type": "package",
"serviceable": true,
"sha512": "sha512-zuvjW34EpCfGrpDe6e9o/8xJ5idf2PnejmGiPjBQesdw32yBOaegTwLmPtoW70RUIYr58j8EDGf7yTaFSc6KXA==",
"path": "microsoft.extensions.configuration/3.1.13",
"hashPath": "microsoft.extensions.configuration.3.1.13.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.Abstractions/3.1.13": {
"type": "package",
"serviceable": true,
"sha512": "sha512-WuU1zMRpNrRihLP0HAwm5rWqgdJUywESu3e38FDRsnx2V/FlN+tOf04bZNnimKmFfwF+wdsxlQjKBBye6EEOZw==",
"path": "microsoft.extensions.configuration.abstractions/3.1.13",
"hashPath": "microsoft.extensions.configuration.abstractions.3.1.13.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.FileExtensions/3.1.13": {
"type": "package",
"serviceable": true,
"sha512": "sha512-3BghtPRGlXgNkTLI2o9kKgf7bG5F7F5YEUJ1nxvlG9Ri9udNTML9ItCpwQb+wX6Wgr8O9uFhlX7jD7oxBb8FRA==",
"path": "microsoft.extensions.configuration.fileextensions/3.1.13",
"hashPath": "microsoft.extensions.configuration.fileextensions.3.1.13.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.Json/3.1.13": {
"type": "package",
"serviceable": true,
"sha512": "sha512-BIU+aJDx3gSe9fE4CmAfUrz6X0mHpFB1hIyS9z1MZqpn7e49uTZ1AH8XOu09YVsK3ceIYNINjJ5tkAi5ANIyQw==",
"path": "microsoft.extensions.configuration.json/3.1.13",
"hashPath": "microsoft.extensions.configuration.json.3.1.13.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.UserSecrets/3.1.13": {
"type": "package",
"serviceable": true,
"sha512": "sha512-s+L9eTjSDVHo3zeAI++KWmnZe3ijt840RHHjvICdCDiYdV3TNF6YduyweVK8KrYHaWLxaHL1GlF2Y/PezKafcA==",
"path": "microsoft.extensions.configuration.usersecrets/3.1.13",
"hashPath": "microsoft.extensions.configuration.usersecrets.3.1.13.nupkg.sha512"
},
"Microsoft.Extensions.DependencyInjection.Abstractions/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ORj7Zh81gC69TyvmcUm9tSzytcy8AVousi+IVRAI8nLieQjOFryRusSFh7+aLk16FN9pQNqJAiMd7BTKINK0kA==",
"path": "microsoft.extensions.dependencyinjection.abstractions/5.0.0",
"hashPath": "microsoft.extensions.dependencyinjection.abstractions.5.0.0.nupkg.sha512"
},
"Microsoft.Extensions.FileProviders.Abstractions/3.1.13": {
"type": "package",
"serviceable": true,
"sha512": "sha512-/sDiRV2TKE7hsgwsL+1w8Dz0Zu+41Dyu4zmO+PeYrdfBY5dXkE8kLKgRoVtg28LT6USJh0MLJtlzGco5bwc6bA==",
"path": "microsoft.extensions.fileproviders.abstractions/3.1.13",
"hashPath": "microsoft.extensions.fileproviders.abstractions.3.1.13.nupkg.sha512"
},
"Microsoft.Extensions.FileProviders.Physical/3.1.13": {
"type": "package",
"serviceable": true,
"sha512": "sha512-k3GEtPSjvhd1/xlzt29e5pZWdbUHeG6swwizDgb0WGbOTUHnqU6xtM4r3RnlJLh7q5ZULT8+B51sssMXfk1xMQ==",
"path": "microsoft.extensions.fileproviders.physical/3.1.13",
"hashPath": "microsoft.extensions.fileproviders.physical.3.1.13.nupkg.sha512"
},
"Microsoft.Extensions.FileSystemGlobbing/3.1.13": {
"type": "package",
"serviceable": true,
"sha512": "sha512-hqHzm/eljL8Kv7wRqGr7RtdJhwWge7+AzsuUOiDsylV3yDVZjyPYfdgvUc+AfGYRry+3DaKKFpEWkDptqkInyQ==",
"path": "microsoft.extensions.filesystemglobbing/3.1.13",
"hashPath": "microsoft.extensions.filesystemglobbing.3.1.13.nupkg.sha512"
},
"Microsoft.Extensions.Primitives/3.1.13": {
"type": "package",
"serviceable": true,
"sha512": "sha512-cZVp49xwQPVWs+utx6khnnECWQtkHaFXQnMg/odvy1RUumFUkO6h6C19fJd5zUclC4cS6aIfVJs7b1CDL1ep0A==",
"path": "microsoft.extensions.primitives/3.1.13",
"hashPath": "microsoft.extensions.primitives.3.1.13.nupkg.sha512"
},
"Newtonsoft.Json/13.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==",
"path": "newtonsoft.json/13.0.1",
"hashPath": "newtonsoft.json.13.0.1.nupkg.sha512"
},
"System.Text.Encodings.Web/4.5.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Xg4G4Indi4dqP1iuAiMSwpiWS54ZghzR644OtsRCm/m/lBMG8dUBhLVN7hLm8NNrNTR+iGbshCPTwrvxZPlm4g==",
"path": "system.text.encodings.web/4.5.0",
"hashPath": "system.text.encodings.web.4.5.0.nupkg.sha512"
}
}
}

View File

@ -0,0 +1,9 @@
{
"runtimeOptions": {
"tfm": "netcoreapp3.1",
"framework": {
"name": "Microsoft.WindowsDesktop.App",
"version": "3.1.0"
}
}
}

11
SendEmail/cfg.json Normal file
View File

@ -0,0 +1,11 @@
{
"SMTP_Host": "smtp.gmail.com",
"SMTP_Port": 587,
"SMTP_User": "email@company.com",
"SMTP_Pass": "smtp_password",
"Mail_From": "email@company.com",
"Mail_Subject": "Mail Subject Text",
"Mail_Body": "Mail Body Text",
"Mail_Delivery": "Mail Delivery Text + {destination_email}",
"File_Extensions": "jpg, jpeg, png, gif, bmp, tif, pdf"
}

View File

@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v3.1", FrameworkDisplayName = "")]

View File

@ -0,0 +1,24 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: Microsoft.Extensions.Configuration.UserSecrets.UserSecretsIdAttribute("6daf7e52-c505-4d4e-9d5d-e220057a73ca")]
[assembly: System.Reflection.AssemblyCompanyAttribute("Scan2Email")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("Scan2Email")]
[assembly: System.Reflection.AssemblyTitleAttribute("Scan2Email")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
// Generated by the MSBuild WriteCodeFragment class.

View File

@ -0,0 +1 @@
bb08e41742876eb7033195612b578fb1084351d9

View File

@ -0,0 +1,3 @@
is_global = true
build_property.RootNamespace = Scan2Email
build_property.ProjectDir = \\mcls-DC03\users\dylan\GitHub\SendEmail\SendEmail\

View File

@ -0,0 +1 @@
4c359f6c2bb922ae1a164c05c6aac03b650ca60f

View File

@ -0,0 +1,32 @@
\\mcls-DC03\users\dylan\GitHub\SendEmail\SendEmail\bin\Debug\netcoreapp3.1\Scan2Email.exe
\\mcls-DC03\users\dylan\GitHub\SendEmail\SendEmail\bin\Debug\netcoreapp3.1\Scan2Email.deps.json
\\mcls-DC03\users\dylan\GitHub\SendEmail\SendEmail\bin\Debug\netcoreapp3.1\Scan2Email.runtimeconfig.json
\\mcls-DC03\users\dylan\GitHub\SendEmail\SendEmail\bin\Debug\netcoreapp3.1\Scan2Email.runtimeconfig.dev.json
\\mcls-DC03\users\dylan\GitHub\SendEmail\SendEmail\bin\Debug\netcoreapp3.1\Scan2Email.dll
\\mcls-DC03\users\dylan\GitHub\SendEmail\SendEmail\bin\Debug\netcoreapp3.1\Scan2Email.pdb
\\mcls-DC03\users\dylan\GitHub\SendEmail\SendEmail\bin\Debug\netcoreapp3.1\Microsoft.AspNetCore.Http.Abstractions.dll
\\mcls-DC03\users\dylan\GitHub\SendEmail\SendEmail\bin\Debug\netcoreapp3.1\Microsoft.AspNetCore.Http.Features.dll
\\mcls-DC03\users\dylan\GitHub\SendEmail\SendEmail\bin\Debug\netcoreapp3.1\Microsoft.Extensions.Configuration.dll
\\mcls-DC03\users\dylan\GitHub\SendEmail\SendEmail\bin\Debug\netcoreapp3.1\Microsoft.Extensions.Configuration.Abstractions.dll
\\mcls-DC03\users\dylan\GitHub\SendEmail\SendEmail\bin\Debug\netcoreapp3.1\Microsoft.Extensions.Configuration.FileExtensions.dll
\\mcls-DC03\users\dylan\GitHub\SendEmail\SendEmail\bin\Debug\netcoreapp3.1\Microsoft.Extensions.Configuration.Json.dll
\\mcls-DC03\users\dylan\GitHub\SendEmail\SendEmail\bin\Debug\netcoreapp3.1\Microsoft.Extensions.Configuration.UserSecrets.dll
\\mcls-DC03\users\dylan\GitHub\SendEmail\SendEmail\bin\Debug\netcoreapp3.1\Microsoft.Extensions.DependencyInjection.Abstractions.dll
\\mcls-DC03\users\dylan\GitHub\SendEmail\SendEmail\bin\Debug\netcoreapp3.1\Microsoft.Extensions.FileProviders.Abstractions.dll
\\mcls-DC03\users\dylan\GitHub\SendEmail\SendEmail\bin\Debug\netcoreapp3.1\Microsoft.Extensions.FileProviders.Physical.dll
\\mcls-DC03\users\dylan\GitHub\SendEmail\SendEmail\bin\Debug\netcoreapp3.1\Microsoft.Extensions.FileSystemGlobbing.dll
\\mcls-DC03\users\dylan\GitHub\SendEmail\SendEmail\bin\Debug\netcoreapp3.1\Microsoft.Extensions.Primitives.dll
\\mcls-DC03\users\dylan\GitHub\SendEmail\SendEmail\bin\Debug\netcoreapp3.1\Newtonsoft.Json.dll
\\mcls-DC03\users\dylan\GitHub\SendEmail\SendEmail\obj\Debug\netcoreapp3.1\Scan2Email.csproj.AssemblyReference.cache
\\mcls-DC03\users\dylan\GitHub\SendEmail\SendEmail\obj\Debug\netcoreapp3.1\SendEmail.Form1.resources
\\mcls-DC03\users\dylan\GitHub\SendEmail\SendEmail\obj\Debug\netcoreapp3.1\SendEmail.Form2.resources
\\mcls-DC03\users\dylan\GitHub\SendEmail\SendEmail\obj\Debug\netcoreapp3.1\SendEmail.Form3.resources
\\mcls-DC03\users\dylan\GitHub\SendEmail\SendEmail\obj\Debug\netcoreapp3.1\Scan2Email.csproj.GenerateResource.cache
\\mcls-DC03\users\dylan\GitHub\SendEmail\SendEmail\obj\Debug\netcoreapp3.1\Scan2Email.GeneratedMSBuildEditorConfig.editorconfig
\\mcls-DC03\users\dylan\GitHub\SendEmail\SendEmail\obj\Debug\netcoreapp3.1\Scan2Email.AssemblyInfoInputs.cache
\\mcls-DC03\users\dylan\GitHub\SendEmail\SendEmail\obj\Debug\netcoreapp3.1\Scan2Email.AssemblyInfo.cs
\\mcls-DC03\users\dylan\GitHub\SendEmail\SendEmail\obj\Debug\netcoreapp3.1\Scan2Email.csproj.CoreCompileInputs.cache
\\mcls-DC03\users\dylan\GitHub\SendEmail\SendEmail\obj\Debug\netcoreapp3.1\Scan2Email.csproj.CopyComplete
\\mcls-DC03\users\dylan\GitHub\SendEmail\SendEmail\obj\Debug\netcoreapp3.1\Scan2Email.dll
\\mcls-DC03\users\dylan\GitHub\SendEmail\SendEmail\obj\Debug\netcoreapp3.1\Scan2Email.pdb
\\mcls-DC03\users\dylan\GitHub\SendEmail\SendEmail\obj\Debug\netcoreapp3.1\Scan2Email.genruntimeconfig.cache

View File

@ -0,0 +1,254 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v3.1",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v3.1": {
"Microsoft.AspNetCore.Http.Abstractions/2.2.0": {
"dependencies": {
"Microsoft.AspNetCore.Http.Features": "2.2.0",
"System.Text.Encodings.Web": "4.5.0"
},
"runtime": {
"lib/netstandard2.0/Microsoft.AspNetCore.Http.Abstractions.dll": {
"assemblyVersion": "2.2.0.0",
"fileVersion": "2.2.0.18316"
}
}
},
"Microsoft.AspNetCore.Http.Features/2.2.0": {
"dependencies": {
"Microsoft.Extensions.Primitives": "3.1.13"
},
"runtime": {
"lib/netstandard2.0/Microsoft.AspNetCore.Http.Features.dll": {
"assemblyVersion": "2.2.0.0",
"fileVersion": "2.2.0.18316"
}
}
},
"Microsoft.Extensions.Configuration/3.1.13": {
"dependencies": {
"Microsoft.Extensions.Configuration.Abstractions": "3.1.13"
},
"runtime": {
"lib/netcoreapp3.1/Microsoft.Extensions.Configuration.dll": {
"assemblyVersion": "3.1.13.0",
"fileVersion": "3.100.1321.11604"
}
}
},
"Microsoft.Extensions.Configuration.Abstractions/3.1.13": {
"dependencies": {
"Microsoft.Extensions.Primitives": "3.1.13"
},
"runtime": {
"lib/netcoreapp3.1/Microsoft.Extensions.Configuration.Abstractions.dll": {
"assemblyVersion": "3.1.13.0",
"fileVersion": "3.100.1321.11604"
}
}
},
"Microsoft.Extensions.Configuration.FileExtensions/3.1.13": {
"dependencies": {
"Microsoft.Extensions.Configuration": "3.1.13",
"Microsoft.Extensions.FileProviders.Physical": "3.1.13"
},
"runtime": {
"lib/netcoreapp3.1/Microsoft.Extensions.Configuration.FileExtensions.dll": {
"assemblyVersion": "3.1.13.0",
"fileVersion": "3.100.1321.11604"
}
}
},
"Microsoft.Extensions.Configuration.Json/3.1.13": {
"dependencies": {
"Microsoft.Extensions.Configuration": "3.1.13",
"Microsoft.Extensions.Configuration.FileExtensions": "3.1.13"
},
"runtime": {
"lib/netcoreapp3.1/Microsoft.Extensions.Configuration.Json.dll": {
"assemblyVersion": "3.1.13.0",
"fileVersion": "3.100.1321.11604"
}
}
},
"Microsoft.Extensions.Configuration.UserSecrets/3.1.13": {
"dependencies": {
"Microsoft.Extensions.Configuration.Json": "3.1.13"
},
"runtime": {
"lib/netcoreapp3.1/Microsoft.Extensions.Configuration.UserSecrets.dll": {
"assemblyVersion": "3.1.13.0",
"fileVersion": "3.100.1321.11604"
}
}
},
"Microsoft.Extensions.DependencyInjection.Abstractions/5.0.0": {
"runtime": {
"lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.20.51904"
}
}
},
"Microsoft.Extensions.FileProviders.Abstractions/3.1.13": {
"dependencies": {
"Microsoft.Extensions.Primitives": "3.1.13"
},
"runtime": {
"lib/netcoreapp3.1/Microsoft.Extensions.FileProviders.Abstractions.dll": {
"assemblyVersion": "3.1.13.0",
"fileVersion": "3.100.1321.11604"
}
}
},
"Microsoft.Extensions.FileProviders.Physical/3.1.13": {
"dependencies": {
"Microsoft.Extensions.FileProviders.Abstractions": "3.1.13",
"Microsoft.Extensions.FileSystemGlobbing": "3.1.13"
},
"runtime": {
"lib/netcoreapp3.1/Microsoft.Extensions.FileProviders.Physical.dll": {
"assemblyVersion": "3.1.13.0",
"fileVersion": "3.100.1321.11604"
}
}
},
"Microsoft.Extensions.FileSystemGlobbing/3.1.13": {
"runtime": {
"lib/netstandard2.0/Microsoft.Extensions.FileSystemGlobbing.dll": {
"assemblyVersion": "3.1.13.0",
"fileVersion": "3.100.1321.11604"
}
}
},
"Microsoft.Extensions.Primitives/3.1.13": {
"runtime": {
"lib/netcoreapp3.1/Microsoft.Extensions.Primitives.dll": {
"assemblyVersion": "3.1.13.0",
"fileVersion": "3.100.1321.11604"
}
}
},
"Newtonsoft.Json/13.0.1": {
"runtime": {
"lib/netstandard2.0/Newtonsoft.Json.dll": {
"assemblyVersion": "13.0.0.0",
"fileVersion": "13.0.1.25517"
}
}
},
"System.Text.Encodings.Web/4.5.0": {
"runtime": {
"lib/netstandard2.0/System.Text.Encodings.Web.dll": {
"assemblyVersion": "4.0.3.0",
"fileVersion": "4.6.26515.6"
}
}
}
}
},
"libraries": {
"Microsoft.AspNetCore.Http.Abstractions/2.2.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Nxs7Z1q3f1STfLYKJSVXCs1iBl+Ya6E8o4Oy1bCxJ/rNI44E/0f6tbsrVqAWfB7jlnJfyaAtIalBVxPKUPQb4Q==",
"path": "microsoft.aspnetcore.http.abstractions/2.2.0",
"hashPath": "microsoft.aspnetcore.http.abstractions.2.2.0.nupkg.sha512"
},
"Microsoft.AspNetCore.Http.Features/2.2.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ziFz5zH8f33En4dX81LW84I6XrYXKf9jg6aM39cM+LffN9KJahViKZ61dGMSO2gd3e+qe5yBRwsesvyqlZaSMg==",
"path": "microsoft.aspnetcore.http.features/2.2.0",
"hashPath": "microsoft.aspnetcore.http.features.2.2.0.nupkg.sha512"
},
"Microsoft.Extensions.Configuration/3.1.13": {
"type": "package",
"serviceable": true,
"sha512": "sha512-zuvjW34EpCfGrpDe6e9o/8xJ5idf2PnejmGiPjBQesdw32yBOaegTwLmPtoW70RUIYr58j8EDGf7yTaFSc6KXA==",
"path": "microsoft.extensions.configuration/3.1.13",
"hashPath": "microsoft.extensions.configuration.3.1.13.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.Abstractions/3.1.13": {
"type": "package",
"serviceable": true,
"sha512": "sha512-WuU1zMRpNrRihLP0HAwm5rWqgdJUywESu3e38FDRsnx2V/FlN+tOf04bZNnimKmFfwF+wdsxlQjKBBye6EEOZw==",
"path": "microsoft.extensions.configuration.abstractions/3.1.13",
"hashPath": "microsoft.extensions.configuration.abstractions.3.1.13.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.FileExtensions/3.1.13": {
"type": "package",
"serviceable": true,
"sha512": "sha512-3BghtPRGlXgNkTLI2o9kKgf7bG5F7F5YEUJ1nxvlG9Ri9udNTML9ItCpwQb+wX6Wgr8O9uFhlX7jD7oxBb8FRA==",
"path": "microsoft.extensions.configuration.fileextensions/3.1.13",
"hashPath": "microsoft.extensions.configuration.fileextensions.3.1.13.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.Json/3.1.13": {
"type": "package",
"serviceable": true,
"sha512": "sha512-BIU+aJDx3gSe9fE4CmAfUrz6X0mHpFB1hIyS9z1MZqpn7e49uTZ1AH8XOu09YVsK3ceIYNINjJ5tkAi5ANIyQw==",
"path": "microsoft.extensions.configuration.json/3.1.13",
"hashPath": "microsoft.extensions.configuration.json.3.1.13.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.UserSecrets/3.1.13": {
"type": "package",
"serviceable": true,
"sha512": "sha512-s+L9eTjSDVHo3zeAI++KWmnZe3ijt840RHHjvICdCDiYdV3TNF6YduyweVK8KrYHaWLxaHL1GlF2Y/PezKafcA==",
"path": "microsoft.extensions.configuration.usersecrets/3.1.13",
"hashPath": "microsoft.extensions.configuration.usersecrets.3.1.13.nupkg.sha512"
},
"Microsoft.Extensions.DependencyInjection.Abstractions/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ORj7Zh81gC69TyvmcUm9tSzytcy8AVousi+IVRAI8nLieQjOFryRusSFh7+aLk16FN9pQNqJAiMd7BTKINK0kA==",
"path": "microsoft.extensions.dependencyinjection.abstractions/5.0.0",
"hashPath": "microsoft.extensions.dependencyinjection.abstractions.5.0.0.nupkg.sha512"
},
"Microsoft.Extensions.FileProviders.Abstractions/3.1.13": {
"type": "package",
"serviceable": true,
"sha512": "sha512-/sDiRV2TKE7hsgwsL+1w8Dz0Zu+41Dyu4zmO+PeYrdfBY5dXkE8kLKgRoVtg28LT6USJh0MLJtlzGco5bwc6bA==",
"path": "microsoft.extensions.fileproviders.abstractions/3.1.13",
"hashPath": "microsoft.extensions.fileproviders.abstractions.3.1.13.nupkg.sha512"
},
"Microsoft.Extensions.FileProviders.Physical/3.1.13": {
"type": "package",
"serviceable": true,
"sha512": "sha512-k3GEtPSjvhd1/xlzt29e5pZWdbUHeG6swwizDgb0WGbOTUHnqU6xtM4r3RnlJLh7q5ZULT8+B51sssMXfk1xMQ==",
"path": "microsoft.extensions.fileproviders.physical/3.1.13",
"hashPath": "microsoft.extensions.fileproviders.physical.3.1.13.nupkg.sha512"
},
"Microsoft.Extensions.FileSystemGlobbing/3.1.13": {
"type": "package",
"serviceable": true,
"sha512": "sha512-hqHzm/eljL8Kv7wRqGr7RtdJhwWge7+AzsuUOiDsylV3yDVZjyPYfdgvUc+AfGYRry+3DaKKFpEWkDptqkInyQ==",
"path": "microsoft.extensions.filesystemglobbing/3.1.13",
"hashPath": "microsoft.extensions.filesystemglobbing.3.1.13.nupkg.sha512"
},
"Microsoft.Extensions.Primitives/3.1.13": {
"type": "package",
"serviceable": true,
"sha512": "sha512-cZVp49xwQPVWs+utx6khnnECWQtkHaFXQnMg/odvy1RUumFUkO6h6C19fJd5zUclC4cS6aIfVJs7b1CDL1ep0A==",
"path": "microsoft.extensions.primitives/3.1.13",
"hashPath": "microsoft.extensions.primitives.3.1.13.nupkg.sha512"
},
"Newtonsoft.Json/13.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==",
"path": "newtonsoft.json/13.0.1",
"hashPath": "newtonsoft.json.13.0.1.nupkg.sha512"
},
"System.Text.Encodings.Web/4.5.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Xg4G4Indi4dqP1iuAiMSwpiWS54ZghzR644OtsRCm/m/lBMG8dUBhLVN7hLm8NNrNTR+iGbshCPTwrvxZPlm4g==",
"path": "system.text.encodings.web/4.5.0",
"hashPath": "system.text.encodings.web.4.5.0.nupkg.sha512"
}
}
}

View File

@ -0,0 +1,17 @@
{
"runtimeOptions": {
"tfm": "netcoreapp3.1",
"framework": {
"name": "Microsoft.WindowsDesktop.App",
"version": "3.1.0"
},
"additionalProbingPaths": [
"C:\\Users\\dylan\\.dotnet\\store\\|arch|\\|tfm|",
"C:\\Users\\dylan\\.nuget\\packages",
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
],
"configProperties": {
"Microsoft.NETCore.DotNetHostPolicy.SetAppPaths": true
}
}
}

Binary file not shown.

View File

@ -0,0 +1 @@
3816421fb6ad83599c18b582e47497ca8906c103

Binary file not shown.

View File

@ -0,0 +1,24 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: Microsoft.Extensions.Configuration.UserSecrets.UserSecretsIdAttribute("6daf7e52-c505-4d4e-9d5d-e220057a73ca")]
[assembly: System.Reflection.AssemblyCompanyAttribute("SendEmail")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("SendEmail")]
[assembly: System.Reflection.AssemblyTitleAttribute("SendEmail")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
// Generated by the MSBuild WriteCodeFragment class.

Some files were not shown because too many files have changed in this diff Show More