@@ -31,33 +31,41 @@ export class EmailService {
3131 } ) ;
3232 }
3333
34- async sendMail ( rss : Rss , approveFlag : boolean , description ?: string ) {
34+ private async sendMail (
35+ mailOptions : nodemailer . SendMailOptions ,
36+ ) : Promise < void > {
3537 try {
36- const { subject, content } = this . createEmail (
37- rss ,
38- approveFlag ,
39- description ,
40- ) ;
41- await this . transporter . sendMail ( {
42- from : `Denamu<${ this . emailUser } >` ,
43- to : `${ rss . userName } <${ rss . email } >` ,
44- subject,
45- html : content ,
46- } ) ;
47- this . logger . log ( `${ rss . email } 주소로 메일이 전송되었습니다` ) ;
38+ await this . transporter . sendMail ( mailOptions ) ;
39+ this . logger . log ( `${ mailOptions . to } 이메일 전송 성공` ) ;
4840 } catch ( error ) {
49- this . logger . error (
50- `${ rss . email } 주소로 메일 전송 중 오류가 발생했습니다: ${ error } ` ,
51- ) ;
41+ this . logger . error ( `${ mailOptions . to } 이메일 전송 실패: ${ error } ` ) ;
5242 }
5343 }
5444
55- private createEmail ( rss : Rss , approveFlag : boolean , description ?: string ) {
56- const result = approveFlag ? `승인` : `거부` ;
57- const mail = {
45+ async sendRssMail (
46+ rss : Rss ,
47+ approveFlag : boolean ,
48+ description ?: string ,
49+ ) : Promise < void > {
50+ const mailOptions = this . createRssRegistrationMail (
51+ rss ,
52+ approveFlag ,
53+ description ,
54+ ) ;
55+ await this . sendMail ( mailOptions ) ;
56+ }
57+
58+ private createRssRegistrationMail (
59+ rss : Rss ,
60+ approveFlag : boolean ,
61+ description ?: string ,
62+ ) : nodemailer . SendMailOptions {
63+ const result = approveFlag ? '승인' : '거부' ;
64+ return {
65+ from : `Denamu<${ this . emailUser } >` ,
66+ to : `${ rss . userName } <${ rss . email } >` ,
5867 subject : `[🎋 Denamu] RSS 등록이 ${ result } 되었습니다.` ,
59- content : createMailContent ( rss , approveFlag , this . emailUser , description ) ,
68+ html : createMailContent ( rss , approveFlag , this . emailUser , description ) ,
6069 } ;
61- return mail ;
6270 }
6371}
0 commit comments