无法发送电子邮件-尝试连接到主机“ smtp.mail.gmail.com”,端口587,isSSL为false [英] Unable to send email - trying to connect to host "smtp.mail.gmail.com", port 587, isSSL false
问题描述
我正在尝试在Spring MVC 4中使用javamail来发送使用gmail的电子邮件,但在那里出现了一些错误。错误提示...
I am trying to use javamail in spring mvc 4 to send an email using gmail but got some error there. The error says...
信息:收件人?= nishadhungana41@gmail.com,主题?=用户验证,消息?=您的密码是158046
Info: Receipient?= nishadhungana41@gmail.com, Subject?= User Verification, Message?= Your pin is 158046
信息:调试:getProvider()返回javax.mail.Provider [TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle]
Info: DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle]
信息:DEBUG SMTP:useEhlo为真,useAuth为真
Info: DEBUG SMTP: useEhlo true, useAuth true
信息:DEBUG SMTP:尝试连接至主机 smtp.mail.gmail.com,端口587,isSSL为假
Info: DEBUG SMTP: trying to connect to host "smtp.mail.gmail.com", port 587, isSSL false
严重程度:PWC6117:文件 null找不到
Severe: PWC6117: File "null" not found
这是我的春季配置
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="smtp.mail.gmail.com" />
<property name="port" value="587" />
<property name="username" value="nishandhungana41@gmail.com" />
<property name="password" value="*******" />
<property name="javaMailProperties">
<props>
<prop key="mail.smtp.auth">true</prop>
<prop key="mail.debug">true</prop>
<prop key="mail.transport.protocol">smtp</prop>
<prop key="mail.smtp.socketFactory.class">javax.net.ssl.SSLSocketFactory</prop>
<prop key="mail.smtp.socketFactory.port">465</prop>
<prop key="mail.smtp.starttls.enable">true</prop>
</props>
</property>
</bean>
这就是我制作控制器的方式
This is how i made a controller
@Controller
public class EmailController {
private String emailToRecipient = "";
private String emailSubject = "";
private String emailMessage = "";
private final String emailFromRecipient = "nishandhungana41@gmail.com";
@Autowired
private JavaMailSender mailSenderObj;
@Autowired
GeneratePIN generatePin;
// This Method Is Used To Prepare The Email Message And Send It To The Client
@RequestMapping(value = "/create-account", method = RequestMethod.POST)
public @ResponseBody String sendEmailToClient() {
// Reading Email Form Input Parameters
emailSubject = "User Verification";
emailMessage = "Your pin is "+generatePin.pin();
emailToRecipient = "nishadhungana41@gmail.com";
// Logging The Email Form Parameters For Debugging Purpose
System.out.println("\nReceipient?= " + emailToRecipient + ", Subject?= " + emailSubject + ", Message?= " + emailMessage + "\n");
mailSenderObj.send(new MimeMessagePreparator() {
@Override
public void prepare(MimeMessage mimeMessage) throws Exception {
MimeMessageHelper mimeMsgHelperObj = new MimeMessageHelper(mimeMessage, true, "UTF-8");
mimeMsgHelperObj.setTo(emailToRecipient);
mimeMsgHelperObj.setFrom(emailFromRecipient);
mimeMsgHelperObj.setText(emailMessage);
mimeMsgHelperObj.setSubject(emailSubject);
}
});
System.out.println("\nMessage Send Successfully.... Hurrey!\n");
return "Thank You! Your Email Has Been Sent!";
}
}
推荐答案
在按如下方式更新我的spring配置后,问题得以解决:
The problem is solved after updating my spring configuration as follow:
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="smtp.gmail.com" />
<property name="port" value="587" />
<property name="username" value="nishandhungana41@gmail.com" />
<property name="password" value="********" />
<property name="javaMailProperties">
<props>
<prop key="mail.smtp.auth">true</prop>
<prop key="mail.smtp.starttls.enable">true</prop>
</props>
</property>
</bean>
这篇关于无法发送电子邮件-尝试连接到主机“ smtp.mail.gmail.com”,端口587,isSSL为false的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!