我准备了一个可以通过smtp.gmail.com
发送邮件的应用程序,它运行良好,但是当我使用docker运行它时,我收到一个错误-因为它无法连接到smtp.gmail.com
。发送邮件的功能是:
public void sendEmal(String body, String mailRecipient){
Properties props = new Properties();
props.put("mail.transport.protocol", "smtp");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.port", "465");
try{
Authenticator auth = new SMTPAuthenticator();
Session mailSession = Session.getDefaultInstance(props, auth);
mailSession.setDebug(true);
Transport transport = mailSession.getTransport();
MimeMessage message = new MimeMessage(mailSession);
message.setContent(body, "text/plain");
message.addRecipient(Message.RecipientType.TO,
new InternetAddress("mailRecipient"));
transport.connect();
transport.sendMessage(message,
message.getRecipients(Message.RecipientType.TO));
transport.close();
}
catch(Exception e){
System.out.println(e);
}
}
这就是错误:
myapp_thirdInst |调试SMTP:尝试连接到主机“SMTP.gmail.com”,端口465,isSSL false
myapp_thirdInst|javax.mail.MessagingException:未知SMTP主机:smtp.gmail.com;
myapp_thirdInst |嵌套异常是:
myapp_thirdInst |爪哇。网UnknownHostException:smtp。gmail。通用域名格式
myapp_thirdInst |发送邮件时出错
这是我第一次和docker一起玩,经过一些尝试,它仍然失败。我有点迷路了——有人能给我一个解决这个问题的提示吗?
你需要做的第一件事就是让DNS工作!首先用一个shell测试容器DNS,让它工作,然后你的SMTP代码就可以工作了。
也许您可以使用有关DNS配置的信息更新您的问题
问题内容: 我正在使用以下方法使用SMTP从Python发送邮件。是使用的正确方法还是我缺少的陷阱? 问题答案: 我使用的脚本非常相似。我将其发布在此处,作为如何使用email。*模块生成MIME消息的示例。因此可以轻松修改此脚本以附加图片等。 我依靠ISP添加日期时间标头。 我的ISP要求我使用安全的smtp连接发送邮件,我依靠smtplib模块(可从http://www1.cs.columbi
SMTP是发送邮件的协议,Python内置对SMTP的支持,可以发送纯文本邮件、HTML邮件以及带附件的邮件。 Python对SMTP支持有smtplib和email两个模块,email负责构造邮件,smtplib负责发送邮件。 首先,我们来构造一个最简单的纯文本邮件: from email.mime.text import MIMEText msg = MIMEText('hello, send
SMTP是发送邮件的协议,Python内置对SMTP的支持,可以发送纯文本邮件、HTML邮件以及带附件的邮件。 Python对SMTP支持有smtplib和email两个模块,email负责构造邮件,smtplib负责发送邮件。 首先,我们来构造一个最简单的纯文本邮件: from email.mime.text import MIMEText msg = MIMEText('hello, send
我想在python上使用lib发送邮件。我知道它在端口号25上使用本地smtp服务。我有以下代码。这些代码在我的本地运行没有任何问题,邮件发送成功。但是当我将它们移动到docker容器时,邮件不会发送,也不会给出任何错误。 我的代码: 运行这些代码后,我将空格({})作为值。在sendmail方法描述中有这样的: ...消息被接受传递到四个地址中的三个,其中一个被拒绝,错误代码为550。如果所有地
主要内容:实例,使用 Ruby 发送 HTML 邮件,实例,发送带附件的邮件,实例SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。 Ruby提供了 Net::SMTP 来发送邮件,并提供了两个方法 new 和 start: new 方法有两个参数: server name 默认为 localhost port number 默认为 25 start 方法有以下参数: