![](/img/trans.png)
[英]Send Email Without authentication in java using gmail smtp server and javamail
[英]Gmail as JavaMail SMTP server
我一直在使用以Gmail為主機的JavaMail API,並且對如何使用它發送電子郵件有一般的了解。 但是仍然有兩行代碼使我感到困惑。
message.setFrom(new InternetAddress(USERNAME));
API表示,這用於“設置此消息中的“發件人”屬性。 但是,當我從代碼中刪除此行並發送電子郵件時,與出現該行時相比,電子郵件沒有明顯的變化。 我認為這對於防止垃圾郵件在Gmail上是有目的的,這使我想知道在將Gmail用作主機時是否完全有必要這樣做。
這也給我帶來麻煩。
props.put("mail.smtp.auth", "true");
根據我收集到的信息,這表明主機是否需要身份驗證,Gmail則需要。 但是,將其設置為false似乎無濟於事,並且消息的發送時間與設置為true時相同。 為什么會這樣呢?
謝謝你的幫助。 如果有幫助,這是我的所有代碼。
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import java.util.Properties;
public class SendEmail
{
private String msg;
private String className;
private final String USERNAME = "email@gmail.com";
private final String PASSWORD = "password";
private final String HOST = "smtp.gmail.com";
public SendEmail(String email, String text, String title)
{
String to = email;
Properties props = new Properties();
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.host", HOST);
props.put("mail.smtp.port", "587");
Session session = Session.getInstance(props, null);
try
{
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(USERNAME));
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));
message.setSubject(title);
message.setText(text);
Transport.send(message, USERNAME, PASSWORD);
msg = "Email Successfully Sent";
}
catch(Exception ex)
{
msg = ex.getClass().getName();
}
}
}
首先,
message.setFrom(new InternetAddress(USERNAME));
正在使用RFC 5321-第3.3節“郵件交易 MAIL
命令(包括FROM
)。 同樣, mail.smtp.auth
似乎是可選的
props.put("mail.smtp.auth", "true");`
因為該庫假定您在以下位置指定USERNAME
和PASSWORD
時要使用mail.smtp.auth
Transport.send(message, USERNAME, PASSWORD);
Transport.send(Message, String, String)
Javadoc說(部分)
使用指定的用戶名和密碼對郵件服務器進行身份驗證。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.