Google エンジン経由でメールを受信する方法を理解しました。今、私は電子メールが受信されたという確認を送信しようとしていますが、このエラーが発生し続けています:
com.jkimgroup.emailtospreadsheet.MailHandlerServlet doPost:
MessagingException: javax.mail.SendFailedException:
Send failure (javax.mail.MessagingException:
Could not connect to SMTP host: localhost, port: 25 (java.net.SocketException: Permission denied:
Attempt to access a blocked recipient without permission.))
「差出人」アドレスを管理者の電子メールに設定しています。/WEB-INF/lib フォルダーに正しい jar ファイルが含まれていない可能性があるため、これはエラー メッセージですか?
そして、Google の標準的な例を使用しました: https://developers.google.com/appengine/docs/java/mail/usingjavamail
import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
// ...
Properties props = new Properties();
Session session = Session.getDefaultInstance(props, null);
String msgBody = "...";
try {
Message msg = new MimeMessage(session);
msg.setFrom(new InternetAddress("admin@example.com", "Example.com Admin"));
msg.addRecipient(Message.RecipientType.TO,
new InternetAddress("user@example.com", "Mr. User"));
msg.setSubject("Your Example.com account has been activated");
msg.setText(msgBody);
Transport.send(msg);
} catch (AddressException e) {
// ...
} catch (MessagingException e) {
// ...
}
更新 私は、公式ドキュメントが JavaMail 1.4.7 の使用を指し示しているにもかかわらず、メール処理の代わりに appengine ライブラリを使用することになっているのではないかと考え始めていますか?
その場合、コードにインポートしたライブラリを次に示します。
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Properties;
import java.util.TimeZone;
import java.util.logging.Logger;
import javax.mail.Address;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.Part;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
//Am I supossed to import this one instead of the javax.mail.* jars?
//import com.google.appengine.api.mail.MailService.Message;
import com.google.appengine.api.users.User;
import com.google.gdata.client.spreadsheet.SpreadsheetService;
import com.google.gdata.data.spreadsheet.ListEntry;
import com.google.gdata.util.AuthenticationException;
import com.google.gdata.util.ServiceException;
UPDATE 2 FIXED NOW 私は Oracle の JavaMail JAR をアプリに追加しましたが、次のように問題が発生しました。
必要な JavaMail クラスはすべて App Engine SDK に含まれています。Oracle® の JavaMail JAR をアプリに追加しないでください。その場合、アプリは例外をスローします。
https://developers.google.com/appengine/docs/java/mail/?csw=1