MCSmtpRepository.st
author Claus Gittinger <cg@exept.de>
Sat, 01 Sep 2018 17:32:13 +0200
changeset 1086 efc5221435a5
parent 1022 b561a6a0a2d7
permissions -rw-r--r--
initial checkin
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
116
c1ae9aaf5d5b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/monticello' }"
c1ae9aaf5d5b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
1022
b561a6a0a2d7 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 900
diff changeset
     3
"{ NameSpace: Smalltalk }"
b561a6a0a2d7 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 900
diff changeset
     4
116
c1ae9aaf5d5b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
MCWriteOnlyRepository subclass:#MCSmtpRepository
c1ae9aaf5d5b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	instanceVariableNames:'email'
c1ae9aaf5d5b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
	classVariableNames:''
c1ae9aaf5d5b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
	poolDictionaries:''
680
dee895391882 category change
Claus Gittinger <cg@exept.de>
parents: 327
diff changeset
     9
	category:'SCM-Monticello-Repositories'
116
c1ae9aaf5d5b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
!
c1ae9aaf5d5b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
c1ae9aaf5d5b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
c1ae9aaf5d5b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
!MCSmtpRepository class methodsFor:'as yet unclassified'!
c1ae9aaf5d5b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
c1ae9aaf5d5b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
morphicConfigure
1022
b561a6a0a2d7 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 900
diff changeset
    16
        | dialog address |
b561a6a0a2d7 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 900
diff changeset
    17
b561a6a0a2d7 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 900
diff changeset
    18
        dialog := UIManager isNil ifTrue:[Dialog] ifFalse:[ UIManager default ].
b561a6a0a2d7 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 900
diff changeset
    19
        address := dialog request: 'Email address:' translated.
b561a6a0a2d7 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 900
diff changeset
    20
        ^ address isEmpty ifFalse: [self new emailAddress: address]
116
c1ae9aaf5d5b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
! !
c1ae9aaf5d5b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
900
34c44e0f7cee categories
Claus Gittinger <cg@exept.de>
parents: 680
diff changeset
    23
!MCSmtpRepository class methodsFor:'queries'!
34c44e0f7cee categories
Claus Gittinger <cg@exept.de>
parents: 680
diff changeset
    24
34c44e0f7cee categories
Claus Gittinger <cg@exept.de>
parents: 680
diff changeset
    25
description
34c44e0f7cee categories
Claus Gittinger <cg@exept.de>
parents: 680
diff changeset
    26
	^ 'SMTP'
34c44e0f7cee categories
Claus Gittinger <cg@exept.de>
parents: 680
diff changeset
    27
! !
116
c1ae9aaf5d5b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
900
34c44e0f7cee categories
Claus Gittinger <cg@exept.de>
parents: 680
diff changeset
    29
!MCSmtpRepository methodsFor:'accessing'!
34c44e0f7cee categories
Claus Gittinger <cg@exept.de>
parents: 680
diff changeset
    30
34c44e0f7cee categories
Claus Gittinger <cg@exept.de>
parents: 680
diff changeset
    31
description
34c44e0f7cee categories
Claus Gittinger <cg@exept.de>
parents: 680
diff changeset
    32
	^ 'mailto://', email
34c44e0f7cee categories
Claus Gittinger <cg@exept.de>
parents: 680
diff changeset
    33
! !
34c44e0f7cee categories
Claus Gittinger <cg@exept.de>
parents: 680
diff changeset
    34
34c44e0f7cee categories
Claus Gittinger <cg@exept.de>
parents: 680
diff changeset
    35
!MCSmtpRepository methodsFor:'as yet unclassified'!
116
c1ae9aaf5d5b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
c1ae9aaf5d5b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
bodyForVersion: aVersion
c1ae9aaf5d5b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
	^ String streamContents:
c1ae9aaf5d5b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
		[ :s |
c1ae9aaf5d5b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
		s nextPutAll: 'from version info:'; cr; cr.
c1ae9aaf5d5b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
		s nextPutAll:  aVersion info summary]
c1ae9aaf5d5b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
!
c1ae9aaf5d5b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
c1ae9aaf5d5b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
emailAddress: aString
220
7ef561a05e48 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
    45
	email := aString	
116
c1ae9aaf5d5b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
!
c1ae9aaf5d5b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
c1ae9aaf5d5b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
messageForVersion: aVersion
c1ae9aaf5d5b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
	| message data |
c1ae9aaf5d5b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
	message := MailMessage empty.
c1ae9aaf5d5b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
	message setField: 'from' toString: MailSender userName.
c1ae9aaf5d5b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
	message setField: 'to' toString: email.
c1ae9aaf5d5b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
	message setField: 'subject' toString: (self subjectForVersion: aVersion). 
c1ae9aaf5d5b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
c1ae9aaf5d5b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
	message body:
c1ae9aaf5d5b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
		(MIMEDocument
c1ae9aaf5d5b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
			contentType: 'text/plain'
c1ae9aaf5d5b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
			content: (self bodyForVersion: aVersion)).
c1ae9aaf5d5b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
c1ae9aaf5d5b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
	"Prepare the gzipped data"
220
7ef561a05e48 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
    61
	data := RWBinaryOrTextStream on: String new.
116
c1ae9aaf5d5b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
	aVersion fileOutOn: data.
c1ae9aaf5d5b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
	message addAttachmentFrom: data reset withName: aVersion fileName.
c1ae9aaf5d5b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
	^ message
900
34c44e0f7cee categories
Claus Gittinger <cg@exept.de>
parents: 680
diff changeset
    65
! !
34c44e0f7cee categories
Claus Gittinger <cg@exept.de>
parents: 680
diff changeset
    66
34c44e0f7cee categories
Claus Gittinger <cg@exept.de>
parents: 680
diff changeset
    67
!MCSmtpRepository methodsFor:'printing & storing'!
34c44e0f7cee categories
Claus Gittinger <cg@exept.de>
parents: 680
diff changeset
    68
34c44e0f7cee categories
Claus Gittinger <cg@exept.de>
parents: 680
diff changeset
    69
basicStoreVersion: aVersion
34c44e0f7cee categories
Claus Gittinger <cg@exept.de>
parents: 680
diff changeset
    70
	MailSender sendMessage: (self messageForVersion: aVersion)
34c44e0f7cee categories
Claus Gittinger <cg@exept.de>
parents: 680
diff changeset
    71
! !
34c44e0f7cee categories
Claus Gittinger <cg@exept.de>
parents: 680
diff changeset
    72
34c44e0f7cee categories
Claus Gittinger <cg@exept.de>
parents: 680
diff changeset
    73
!MCSmtpRepository methodsFor:'queries'!
116
c1ae9aaf5d5b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
c1ae9aaf5d5b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
subjectForVersion: aVersion
c1ae9aaf5d5b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
	^ '[Package] ', aVersion info name
c1ae9aaf5d5b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
! !
c1ae9aaf5d5b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
c1ae9aaf5d5b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
!MCSmtpRepository class methodsFor:'documentation'!
c1ae9aaf5d5b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
c1ae9aaf5d5b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
version
1022
b561a6a0a2d7 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 900
diff changeset
    82
    ^ '$Header$'
220
7ef561a05e48 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
    83
!
7ef561a05e48 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
    84
7ef561a05e48 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
    85
version_CVS
1022
b561a6a0a2d7 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 900
diff changeset
    86
    ^ '$Header$'
220
7ef561a05e48 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
    87
!
7ef561a05e48 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
    88
7ef561a05e48 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
    89
version_SVN
1022
b561a6a0a2d7 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 900
diff changeset
    90
    ^ '$Id$'
116
c1ae9aaf5d5b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
! !
900
34c44e0f7cee categories
Claus Gittinger <cg@exept.de>
parents: 680
diff changeset
    92