0

Java プログラム内から、ユーザーのローカル メール クライアントを介して自動的にメールを送信したいと考えています。

次のコードを使用してクライアントを開き、必要なフィールドに入力しますが、ユーザーの操作なしで自動的に送信するにはどうすればよいですか?

    private void sendMail() throws MessagingException {
    try {
        Desktop.getDesktop().mail(new URI("mailto:abc@def.com?subject=someSubject&cc=aa@bb.cc,dd@dd.ds&bcc=x@y.zz&body=someBodyText"));
    } catch (Exception e) {
        e.printStackTrace();
    }

}

基本的には会社のネットワークの外に出ないメールを送りたいです。

4

2 に答える 2

1

このガイドに従って、少なくとも Outlook に対処する方法を見つけました: Vogella, Eclipse-Microsoft Integration

基本的に、OleClientSite クラスを使用して Outlook を呼び出しています。次に、oleAutomation クラスを使用してメールを送信しています。

コードスニペット:

            Shell shell = new Shell(Display.getDefault());
            OleFrame frame = new OleFrame(shell, SWT.NONE);
            // This should start outlook if it is not running yet
            OleClientSite site = new OleClientSite(frame, SWT.NONE, "OVCtl.OVCtl");
            site.doVerb(OLE.OLEIVERB_INPLACEACTIVATE);
            // Now get the outlook application
            OleClientSite site2 = new OleClientSite(frame, SWT.NONE,
                "Outlook.Application");
            OleAutomation outlook = new OleAutomation(site2);
            // 
            OleAutomation mail = invoke(outlook, "CreateItem", 0 /* Mail item */)
                .getAutomation();
            setProperty(mail, "To", "aav@gmail.com"); /*
                                   * Empty but could also be
                                   * predefined
                                   */

            setProperty(mail, "Bcc", "test@gmail.com"); /*
                                   * Empty but could also be
                                   * predefined
                                   */

            setProperty(mail, "BodyFormat", 2 /* HTML */);
            setProperty(mail, "Subject", "Top News for you");
            setProperty(mail, "HtmlBody",
                "<html>Hello<p>, please find some infos here.</html>");

            invoke(mail, "Send" /* or "Send" */);
于 2013-07-04T14:20:16.293 に答える
1

答えはJava Mail APIです。

基本的に、メール アカウント (通常はユーザー名とパスワード) が必要です。メール SP の SMTP サーバー アドレスも必要です。メール SP の SMTP サーバー アドレスは、通常は Web サイトにあります。

于 2013-07-04T10:39:04.487 に答える