[英]Sending email using javax?
我想使用javax.mail發送電子郵件。 當我運行以下代碼時,它給我這個錯誤hwangheera4hagarmaher沒有提供程序。 問題出在哪里,如何解決此錯誤?
我使用的代碼是這樣的:
public static boolean SendMail (String subject, String from, String Password, String Message, String to[])
{
String Host = "hwangheera4hagarmaher@gmail.com";
Properties Property = System.getProperties();
Property.put("mail.hwangheera4hagarmaher.starttls.enable", true);
Property.put ("mail.hwangheera4hagarmaher.host", Host);
Property.put ("mail.hwangheera4hagarmaher.user", from);
Property.put ("mail.hwangheera4hagarmaher.password", Password);
Property.put ("mail.hwangheera4hagarmaher.port", 587);
Property.put ("mail.hwangheera4hagarmaher.auth", "true");
Session session = Session.getDefaultInstance(Property, null);
MimeMessage message = new MimeMessage (session);
try
{
message.setFrom(new InternetAddress (from));
InternetAddress [] toAddress = new InternetAddress[to.length];
for (int i = 0; i < to.length; i++)
{
toAddress [i] = new InternetAddress (to[i]);
}
for (int i = 0; i < toAddress.length; i++)
{
message.addRecipient(RecipientType.TO, toAddress[i]);
}
message.setSubject (subject);
message.setText(Message);
Transport transport = session.getTransport("hwangheera4hagarmaher");
transport.connect (Host, from, Password);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
return true;
}
catch (MessagingException ex)
{
showMessageDialog (null, ex);
}
return false;
}
在所有道具中,將hwangheera4hagarmaher
替換為smtp
,並獲取getTransport ()
除非您自己用該名稱編碼了提供程序。
您的主機名應該是服務器,而不是電子郵件地址。 也許smtp.gmail.com
?
默認情況下,Google提供使用任何外部訪問的安全預防措施,特別是如果您使用某些電子郵件框架訪問您的帳戶,則首先需要授予訪問權限,登錄您的帳戶,然后轉到:
https://accounts.google.com/DisplayUnlockCaptcha
然后,按照其余步驟允許訪問您的帳戶。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.