@@ -10,63 +10,63 @@ namespace PnP.PowerShell.Commands.Utilities
10
10
[ Cmdlet ( VerbsCommunications . Send , "PnPMail" , DefaultParameterSetName = ParameterSet_SENDTHROUGHSPO ) ]
11
11
public class SendMail : PnPWebCmdlet
12
12
{
13
- private const string ParameterSet_SENDTHROUGHGRAPH = "Send through Microsoft Graph with attachments from local file system" ;
14
13
private const string ParameterSet_SENDTHROUGHSPO = "Send through SharePoint Online" ;
15
- private const string ParameterSet_SENDTHROUGHGRAPHWITHFILES = "Send through Microsoft Graph with attachments from SPO " ;
14
+ private const string ParameterSet_SENDTHROUGHGRAPH = "Send through Microsoft Graph" ;
16
15
17
16
[ Parameter ( Mandatory = true , ParameterSetName = ParameterSet_SENDTHROUGHGRAPH ) ]
18
- [ Parameter ( Mandatory = true , ParameterSetName = ParameterSet_SENDTHROUGHGRAPHWITHFILES ) ]
19
17
public string From ;
20
18
21
19
[ Parameter ( Mandatory = true , ParameterSetName = ParameterSet_SENDTHROUGHGRAPH ) ]
22
20
[ Parameter ( Mandatory = true , ParameterSetName = ParameterSet_SENDTHROUGHSPO ) ]
23
- [ Parameter ( Mandatory = true , ParameterSetName = ParameterSet_SENDTHROUGHGRAPHWITHFILES ) ]
24
21
public string [ ] To ;
25
22
26
23
[ Parameter ( Mandatory = false , ParameterSetName = ParameterSet_SENDTHROUGHGRAPH ) ]
27
24
[ Parameter ( Mandatory = false , ParameterSetName = ParameterSet_SENDTHROUGHSPO ) ]
28
- [ Parameter ( Mandatory = false , ParameterSetName = ParameterSet_SENDTHROUGHGRAPHWITHFILES ) ]
29
25
public string [ ] Cc ;
30
26
31
27
[ Parameter ( Mandatory = false , ParameterSetName = ParameterSet_SENDTHROUGHGRAPH ) ]
32
28
[ Parameter ( Mandatory = false , ParameterSetName = ParameterSet_SENDTHROUGHSPO ) ]
33
- [ Parameter ( Mandatory = false , ParameterSetName = ParameterSet_SENDTHROUGHGRAPHWITHFILES ) ]
34
29
public string [ ] Bcc ;
35
30
36
31
[ Parameter ( Mandatory = true , ParameterSetName = ParameterSet_SENDTHROUGHGRAPH ) ]
37
32
[ Parameter ( Mandatory = true , ParameterSetName = ParameterSet_SENDTHROUGHSPO ) ]
38
- [ Parameter ( Mandatory = true , ParameterSetName = ParameterSet_SENDTHROUGHGRAPHWITHFILES ) ]
39
33
public string Subject ;
40
34
41
35
[ Parameter ( Mandatory = true , ParameterSetName = ParameterSet_SENDTHROUGHGRAPH ) ]
42
36
[ Parameter ( Mandatory = true , ParameterSetName = ParameterSet_SENDTHROUGHSPO ) ]
43
- [ Parameter ( Mandatory = true , ParameterSetName = ParameterSet_SENDTHROUGHGRAPHWITHFILES ) ]
44
37
public string Body ;
45
38
46
39
[ Parameter ( Mandatory = false , ParameterSetName = ParameterSet_SENDTHROUGHGRAPH ) ]
47
- [ Parameter ( Mandatory = false , ParameterSetName = ParameterSet_SENDTHROUGHGRAPHWITHFILES ) ]
48
40
public MessageImportanceType Importance ;
49
41
50
42
[ Parameter ( Mandatory = false , ParameterSetName = ParameterSet_SENDTHROUGHGRAPH ) ]
51
- [ Parameter ( Mandatory = false , ParameterSetName = ParameterSet_SENDTHROUGHGRAPHWITHFILES ) ]
52
43
public string [ ] ReplyTo ;
53
44
54
45
[ Parameter ( Mandatory = false , ParameterSetName = ParameterSet_SENDTHROUGHGRAPH ) ]
55
- [ Parameter ( Mandatory = false , ParameterSetName = ParameterSet_SENDTHROUGHGRAPHWITHFILES ) ]
56
46
public bool ? SaveToSentItems ;
57
47
58
48
[ Parameter ( Mandatory = false , ParameterSetName = ParameterSet_SENDTHROUGHGRAPH ) ]
59
- [ Parameter ( Mandatory = false , ParameterSetName = ParameterSet_SENDTHROUGHGRAPHWITHFILES ) ]
60
49
public MessageBodyContentType ? BodyContentType ;
61
50
62
51
[ Parameter ( Mandatory = false , ParameterSetName = ParameterSet_SENDTHROUGHGRAPH ) ]
63
52
public string [ ] Attachments ;
64
53
65
- [ Parameter ( Mandatory = false , ParameterSetName = ParameterSet_SENDTHROUGHGRAPHWITHFILES ) ]
54
+ [ Parameter ( Mandatory = false , ParameterSetName = ParameterSet_SENDTHROUGHGRAPH ) ]
66
55
public FilePipeBind [ ] Files ;
67
56
68
57
protected override void ExecuteCmdlet ( )
69
58
{
59
+ // Runtime validation to prevent both attachment types being used together
60
+ if ( ParameterSpecified ( nameof ( Attachments ) ) && ParameterSpecified ( nameof ( Files ) ) )
61
+ {
62
+ ThrowTerminatingError ( new ErrorRecord (
63
+ new PSArgumentException ( "You cannot use both -Attachments and -Files parameters together." ) ,
64
+ "SendMailAttachmentConflict" ,
65
+ ErrorCategory . InvalidArgument ,
66
+ this ) ) ;
67
+ return ;
68
+ }
69
+
70
70
if ( string . IsNullOrWhiteSpace ( From ) )
71
71
{
72
72
LogDebug ( "Sending e-mail through SharePoint Online" ) ;
0 commit comments