質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Processing

Processingは、オープンソースプロジェクトによるCGのためのプログラミング言語です。Javaをベースにしており、グラフィック機能に特化しています。イメージの生成やアニメーションなど、視覚的なフィードバックを簡単に得ることが可能です。

Q&A

0回答

2816閲覧

Processingによるメール送信

ghin

総合スコア9

Processing

Processingは、オープンソースプロジェクトによるCGのためのプログラミング言語です。Javaをベースにしており、グラフィック機能に特化しています。イメージの生成やアニメーションなど、視覚的なフィードバックを簡単に得ることが可能です。

0グッド

0クリップ

投稿2017/09/08 08:55

編集2017/09/08 15:19

お世話になっております。
今回、processingを使用して、変数の一つの数字を集計するためにメールで数字を自身に送る事を目的としております。
その過程で、「How to send an email via Processing?」を参考にテストを行ってみましたが、以下のエラーが出て、送信が出来ておりません。

authenticating... javax.mail.MessagingException: Could not convert socket to TLS; nested exception is: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at com.sun.mail.smtp.SMTPTransport.startTLS(SMTPTransport.java:2140) at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:738) at javax.mail.Service.connect(Service.java:388) at javax.mail.Service.connect(Service.java:246) at javax.mail.Service.connect(Service.java:195) at javax.mail.Transport.send0(Transport.java:254) at javax.mail.Transport.send(Transport.java:124) at save_attachment.sendMail(save_attachment.java:119) at save_attachment.setup(save_attachment.java:51) at processing.core.PApplet.handleDraw(PApplet.java:2414) at processing.awt.PSurfaceAWT$12.callDraw(PSurfaceAWT.java:1547) at processing.core.PSurfaceNone$AnimationThread.run(PSurfaceNone.java:316) Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at sun.security.ssl.Alerts.getSSLException(Alerts.java:192) at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1949) at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:302) at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:296) at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1514) at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:216) at sun.security.ssl.Handshaker.processLoop(Handshaker.java:1026) at sun.security.ssl.Handshaker.process_record(Handshaker.java:961) at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1062) at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375) at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403) at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387) at com.sun.mail.util.SocketFetcher.configureSSLSocket(SocketFetcher.java:619) at com.sun.mail.util.SocketFetcher.startTLS(SocketFetcher.java:546) at com.sun.mail.smtp.SMTPTransport.startTLS(SMTPTransport.java:2135) ... 11 more Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:387) at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:292) at sun.security.validator.Validator.validate(Validator.java:260) at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:324) at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:229) at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:124) at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1496) ... 21 more Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141) at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126) at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:280) at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:382) ... 27 more Finished

フォーラム上のソースに対して行った処理は以下の内容です。

  • javax.mailのダウンロード。
  • 上記のファイルをProcessingのツールバー内[スケッチ]>[ファイルの追加]から読み込む。
  • 「Auth」タブ内の15行、16行「someone@example.com」および「myPassword」を送り先のアドレスとパスワードに書き換え。
  • 「MailStuff」タブ内の29行、30行「someone@example.com」及び「recipient@example.com」を送り先アドレスに変更。

使用していますアカウントはGmailでして、二段階認証はなく、低セキュアのアプリのアクセスは許可しています。
上記の方法は画像を送信する物のようですが、出来れば上がれば次にテキストのみの送信テストを行いたいと考えておりますが、「この方法よりもっと簡単な方法がある」などのご意見もふまえた上で、ご知恵をお借りできればと思います。
宜しくお願いいたします。

追記
ご指摘のあった「MailStuffタブ」のソースを追記します。

// Example functions that send mail (smtp) // You can also do imap, but that's not included here // A function to check a mail account import java.util.*; import java.io.*; import javax.activation.*; // A function to send mail void sendMail() { // Create a session String host="smtp.gmail.com"; Properties props=new Properties(); // SMTP Session props.put("mail.transport.protocol", "smtp"); props.put("mail.smtp.host", host); props.put("mail.smtp.port", "587"); props.put("mail.smtp.auth", "true"); // We need TTLS, which gmail requires props.put("mail.smtp.starttls.enable","true"); // Create a session Session session = Session.getDefaultInstance(props, new Auth()); try { MimeMessage msg=new MimeMessage(session); msg.setFrom(new InternetAddress("someone@example.com", "Name")); msg.addRecipient(Message.RecipientType.TO,new InternetAddress("recipient@example.com")); msg.setSubject("Email with Processing"); BodyPart messageBodyPart = new MimeBodyPart(); // Fill the message messageBodyPart.setText("Email sent with Processing"); Multipart multipart = new MimeMultipart(); multipart.addBodyPart(messageBodyPart); // Part two is attachment messageBodyPart = new MimeBodyPart(); DataSource source = new FileDataSource("c:\\image.jpg"); messageBodyPart.setDataHandler(new DataHandler(source)); messageBodyPart.setFileName("image.jpg"); multipart.addBodyPart(messageBodyPart); msg.setContent(multipart); msg.setSentDate(new Date()); Transport.send(msg); println("Mail sent!"); } catch(Exception e) { e.printStackTrace(); } }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

momon-ga

2017/09/08 14:48

MailStuffタブの内容を追記してください
ghin

2017/09/08 15:22

momon-ga様 ご指摘ありがとうございます。追記しましたソースの29、30行に対して、もとより記載しております修正を行いました。宜しくお願い致します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問