-
-
Notifications
You must be signed in to change notification settings - Fork 56
/
Sender.cs
74 lines (71 loc) · 3.23 KB
/
Sender.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
//
// Sender.cs
//
// Author: Kees van Spelde <sicos2002@hotmail.com>
//
// Copyright (c) 2015-2017 Magic-Sessions. (www.magic-sessions.com)
//
// 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.
//
using MsgKit.Enums;
using MsgKit.Streams;
using MsgKit.Structures;
using OpenMcdf;
namespace MsgKit
{
/// <summary>
/// Contains the message sender's e-mail address.
/// </summary>
/// <remarks>
/// These properties are examples of the address properties for the message sender. They must be set by the outgoing
/// transport provider, which should never propagate any previously existing values.
/// </remarks>
public class Sender : Address
{
#region Constructor
/// <summary>
/// Creates this object and sets all it's needed properties
/// </summary>
/// <param name="email">The full E-mail address</param>
/// <param name="displayName">The displayname for the <paramref name="email" /></param>
/// <param name="addressType">The <see cref="Address.AddressType" /></param>
public Sender(string email, string displayName, AddressType addressType = AddressType.Smtp)
: base(email, displayName, addressType)
{
}
#endregion
#region WriteProperties
/// <summary>
/// Writes all <see cref="Property">properties</see> either as a <see cref="CFStream"/> or as a collection in
/// a <see cref="PropertyTags.PropertiesStreamName"/> stream, this depends on the <see cref="PropertyType"/>
/// </summary>
/// <remarks>
/// See the <see cref="Properties"/> class it's <see cref="Properties.WriteProperties"/> method for the logic
/// that is used to determine this
/// </remarks>
/// <param name="propertiesStream">The <see cref="TopLevelProperties"/></param>
internal void WriteProperties(TopLevelProperties propertiesStream)
{
propertiesStream.AddProperty(PropertyTags.PR_SENDER_EMAIL_ADDRESS_W, Email);
propertiesStream.AddProperty(PropertyTags.PR_SENDER_NAME_W, DisplayName);
propertiesStream.AddProperty(PropertyTags.PR_SENDER_ADDRTYPE_W, AddressTypeString);
}
#endregion
}
}