% (c) 2003 IF Computer Japan :- java_predicates(myMimeMessage, [ '_myMimeMessage_create' = myMimeMessage, '_myMimeMessage_addFrom' = addFrom('javax.mail.internet.MimeMessage',string), '_myMimeMessage_setFrom' = setFrom('javax.mail.internet.MimeMessage',string), '_myMimeMessage_setReplyTo' = setReplyTo('javax.mail.internet.MimeMessage',string), '_myMimeMessage_addTo' = addTo('javax.mail.internet.MimeMessage',string), '_myMimeMessage_addCC' = addCC('javax.mail.internet.MimeMessage',string), '_myMimeMessage_addBCC' = addBCC('javax.mail.internet.MimeMessage',string) ]). :- java_predicates('java.util.Properties', [ '_properties_create' = 'java.util.Properties', '_properties_setProperty' = setProperty(string,string) ]). :- java_predicates('javax.mail.Session', [ '_session_getDefaultInstance_1' = getDefaultInstance('java.util.Properties') ]). :- java_predicates('javax.mail.internet.MimeMessage', [ '_mimeMessage_create' = 'javax.mail.internet.MimeMessage'('javax.mail.Session'), '_mimeMessage_setSubject_9' = setSubject(string,string), '_mimeMessage_setText_10' = setText(string,string) ]). :- java_predicates('javax.mail.Transport', [ '_transport_send' = send('javax.mail.Message') ]). /******** example main(_) :- sendmail('smtp.mycompany.com', % SMTP host 'myself@mycompany.com', % from 'myself@mycompany.com (Mr Machine)', % extended ['Ms Nice Client '], % extended Tos [], % CCs [], % BCCs 'mySubject 日本語版', % Subject 'myEnormousMessage 日本語版', % Message 'iso-2022-jp'). % Charset **********/ % sendmail(+Server,+From,+ReplyTo,+Tos,+CCs,+BCCs,+Subject,+Message,+Charset) :- % charset is 'iso-2022-jp' sendmail(Server,From,ReplyTo,Tos,CCs,BCCs,Subject,Message,Charset) :- '_properties_create'(Properties), '_properties_setProperty'(Properties,'mail.smtp.host',Server,_Object), '_session_getDefaultInstance_1'(Properties, Session), '_mimeMessage_create'(Session, MimeMessage), '_myMimeMessage_setFrom'(MimeMessage,From), % need '_myMimeMessage_addFrom'(MimeMessage,From), % both (and seqence!) '_myMimeMessage_setReplyTo'(MimeMessage, ReplyTo), '_for_all_in_do'(To,Tos,'_myMimeMessage_addTo'(MimeMessage, To)), '_for_all_in_do'(CC,CCs,'_myMimeMessage_addCC'(MimeMessage, CC)), '_for_all_in_do'(BCC,BCCs,'_myMimeMessage_addBCC'(MimeMessage, BCC)), '_mimeMessage_setSubject_9'(MimeMessage, Subject, Charset), '_mimeMessage_setText_10'(MimeMessage, Message, Charset), '_transport_send'(MimeMessage), !. '_for_all_in_do'(X,Xs,Goal) :- (member(X,Xs),once(Goal),fail ; true),!.