Java 尝试使用gmail发送电子邮件时出错
我使用“Java 尝试使用gmail发送电子邮件时出错,java,email,Java,Email,我使用“gmail”在需要时发送电子邮件- import com.sun.xml.internal.org.jvnet.mimepull.MIMEMessage; import java.io.BufferedReader; import java.io.FileReader; import java.util.ArrayList; import java.util.Timer; import java.util.TimerTask; import java.util.Properties;
gmail
”在需要时发送电子邮件-
import com.sun.xml.internal.org.jvnet.mimepull.MIMEMessage;
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.Timer;
import java.util.TimerTask;
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;
public class CityGridJobStatusCheckAndEmail {
Properties emailProperties;
Session mailSession;
MIMEMessage emailMessage;
public static void main(String[] args) throws AddressException, MessagingException {
String fileName = "C:/Users/****/Downloads/";
Start.txt;
";;
// String fileName=args[0];
try {
//Create object of FileReader
FileReader inputFile = new FileReader(fileName);
//Instantiate the BufferedReader Class
BufferedReader bufferReader = new BufferedReader(inputFile);
//Variable to hold the one line data
String line;
// Read file line by line and print on the console
while ((line = bufferReader.readLine()) != null) {
if (line.equals("Start of program")) {
CityGridJobStatusCheckAndEmail javaEmail = new CityGridJobStatusCheckAndEmail();
javaEmail.setMailServerProperties();
javaEmail.createEmailMessageforstartofprogram(line);
javaEmail.sendEmailifJobCompleted();
}
}
//Close the buffer reader
bufferReader.close();
} catch (Exception e) {
System.out.println("Error while reading file line by line:" + e.getMessage());
}
}
public void setMailServerProperties() {
String emailPort = "587"; //gmail's smtp port//'465' gmail smtp port, test it with that as well,587//
emailProperties = System.getProperties();
emailProperties.put("mail.smtp.port", emailPort);
emailProperties.put("mail.smtp.auth", "true");
emailProperties.put("mail.smtp.starttls.enable", "true");
}
public void createEmailMessageforstartofprogram(String line) throws AddressException, MessagingException {
String[] toEmails = { "****@gmail.com" };
String emailSubject = "Java Email";
String emailBody = "CitySearch : The Bulk Update program has started";
mailSession = Session.getDefaultInstance(emailProperties, null);
emailMessage = new MimeMessage(mailSession);
for (int i = 0; i < toEmails.length; i++) {
emailMessage.addRecipient(Message.RecipientType.TO, new InternetAddress(toEmails[i]));
}
emailMessage.setSubject(emailSubject);
emailMessage.setContent(emailBody, "text/html"); //for a html email
//emailMessage.setText(emailBody);// for a text email
}
public void createEmailMessage(String jobstatus, String jobId) throws AddressException, MessagingException {
String[] toEmails = { "*****@gmail.com" }; //techops@pasadenalabs.com
String emailSubject = "Java Email";
String emailBody = "The Bulk Update with ID :" + jobId + " , and status :" + jobstatus;
mailSession = Session.getDefaultInstance(emailProperties, null);
emailMessage = new MimeMessage(mailSession);
for (int i = 0; i < toEmails.length; i++) {
emailMessage.addRecipient(Message.RecipientType.TO, new InternetAddress(toEmails[i]));
}
emailMessage.setSubject(emailSubject);
emailMessage.setContent(emailBody, "text/html"); //for a html email
//emailMessage.setText(emailBody);// for a text email
}
public void sendEmailifJobCompleted() throws AddressException, MessagingException {
String emailHost = "smtp.gmail.com";
String fromUser = "******"; //just the id alone without @gmail.com
String fromUserEmailPassword = "555555"; //
Transport transport = mailSession.getTransport("smtp");
transport.connect(emailHost, fromUser, fromUserEmailPassword);
transport.sendMessage(emailMessage, emailMessage.getAllRecipients());
transport.close();
System.out.println("Email sent successfully.");
}
public void sendEmailifJobnotCompleted() throws AddressException, MessagingException {
String emailHost = "smtp.gmail.com";
String fromUser = "*******"; //just the id alone without @gmail.com
String fromUserEmailPassword = "*******";
Transport transport = mailSession.getTransport("smtp");
transport.connect(emailHost, fromUser, fromUserEmailPassword);
transport.sendMessage(emailMessage, emailMessage.getAllRecipients());
transport.close();
System.out.println("Email sent successfully.");
}
}
import com.sun.xml.internal.org.jvnet.mimepull.MIMEMessage;
导入java.io.BufferedReader;
导入java.io.FileReader;
导入java.util.ArrayList;
导入java.util.Timer;
导入java.util.TimerTask;
导入java.util.Properties;
导入javax.mail.Message;
导入javax.mail.MessaginException;
导入javax.mail.Session;
导入javax.mail.Transport;
导入javax.mail.internet.AddressException;
导入javax.mail.internet.InternetAddress;
导入javax.mail.internet.mimessage;
公共类CityGridJobStatusCheckAndEmail{
财产和财产;
会议邮递会议;
mimessage电子邮件;
公共静态void main(字符串[]args)引发AddressException、MessaginException{
String fileName=“C:/Users/**/Downloads/”;
Start.txt;
";;
//字符串文件名=args[0];
试一试{
//创建FileReader的对象
FileReader inputFile=新的FileReader(文件名);
//实例化BufferedReader类
BufferedReader bufferReader=新的BufferedReader(inputFile);
//变量来保存单行数据
弦线;
//逐行读取文件并在控制台上打印
而((line=bufferReader.readLine())!=null){
if(行等于(“程序开始”)){
CityGridJobStatusCheckAndEmail javaEmail=新建CityGridJobStatusCheckAndEmail();
javaEmail.setMailServerProperties();
createEmailMessageforstartofprogram(行);
javaEmail.sendEmailifJobCompleted();
}
}
//关闭缓冲区读取器
bufferReader.close();
}捕获(例外e){
System.out.println(“逐行读取文件时出错:+e.getMessage());
}
}
public void setMailServerProperties(){
字符串emailPort=“587”//gmail的smtp端口//“465”gmail smtp端口,也用它测试一下,587//
emailProperties=System.getProperties();
emailProperties.put(“mail.smtp.port”,emailPort);
emailProperties.put(“mail.smtp.auth”,“true”);
emailProperties.put(“mail.smtp.starttls.enable”、“true”);
}
public void createEmailMessageforstartofprogram(字符串行)抛出AddressException、MessaginException{
字符串[]toEmails={“****@gmail.com”};
字符串emailSubject=“Java电子邮件”;
String emailBody=“CitySearch:批量更新程序已启动”;
mailSession=Session.getDefaultInstance(emailProperties,null);
emailMessage=新的mimessage(mailSession);
for(int i=0;i
当我试图发送电子邮件时,它会抛出一个错误
Error while reading file line by line:534-5.7.14 <https://accounts.google.com /ContinueSignIn?sarp=1&scc=1&plt=AKgnsbvkh
534-5.7.14 6t9cTpTGLup7iypGocpm3F6Gpctby3p0fxBXXKwv5Raa66nOfkB0aGNeHVkyJcT2aeSmRc
534-5.7.14 3BLMYylXdaxOEyeOWQl2qg3DJi7_kz16sDVINej3vNJS1e8-tEheczcXZtM8nsSY4_FlE0
534-5.7.14 sCKCE-XoKvz-c-wddfDZRh_a7RvVn0VZH1LIsw05rJlsHhHbeQtaHeXHjZSjBJdT-nfjNn
534-5.7.14 Kfyl0HA> Please log in via your web browser and then try again.
534-5.7.14 Learn more at https://support.google.com/mail/bin/answer.py?answer=787
534 5.7.14 54 cz3sm1737237pbc.9 - gsmtp
逐行读取文件时出错:534-5.7.14请通过web浏览器登录,然后重试。
534-5.7.14了解更多信息,请访问https://support.google.com/mail/bin/answer.py?answer=787
534 5.7.14 54 cz3sm1737237pbc.9-gsmtp
现在当这种情况发生时,
gmail
(在gmail帐户中)当询问从该帐户接收电子邮件是否安全时,我已指定“是”,现在它接收电子邮件。我确实希望知道如何进一步克服此问题,例如,如果有人更改电子邮件地址?感谢任何帮助。如果您在发送前通过oAuth验证,则不会通过浏览器询问您