Исключение нулевого указателя - это индикатор того, что вы используете объект, не инициализируя его.
Например, ниже - класс ученика, который будет использовать его в нашем коде.
public class Student {
private int id;
public int getId() {
return this.id;
}
public setId(int newId) {
this.id = newId;
}
}
Приведенный ниже код дает вам исключение с нулевым указателем.
public class School {
Student obj_Student;
public School() {
try {
obj_Student.getId();
}
catch(Exception e) {
System.out.println("Null Pointer ");
}
}
}
Поскольку вы используете Obj_Student
, но вы забыли инициализировать его, как в правильном коде, показанном ниже:
public class School {
Student obj_Student;
public School() {
try {
obj_Student = new Student();
obj_Student.setId(12);
obj_Student.getId();
}
catch(Exception e) {
System.out.println("Null Pointer ");
}
}
}
Я просто попробовал это, и это сработало для меня.
Мое единственное отличие заключалось в том, что я использовал & lt;> для from и для:
from = "<email1@dal.ca>"
to = "<email2@gmail.com>"
и моей почты управление было другим, я использовал
control=list(smtpServer="ASPMX.L.GOOGLE.COM"))
Если вам нужно использовать SMTP-сервер с аутентификацией, вы можете использовать пакет mailR
.
Например, используя smtp-сервер gmail:
library(mailR)
sender <- "SENDER@gmail.com"
recipients <- c("RECIPIENT@gmail.com")
send.mail(from = sender,
to = recipients,
subject = "Subject of the email",
body = "Body of the email",
smtp = list(host.name = "smtp.gmail.com", port = 465,
user.name = "YOURUSERNAME@gmail.com",
passwd = "YOURPASSWORD", ssl = TRUE),
authenticate = TRUE,
send = TRUE)
Error in ls(envir = envir, all.names = private) : invalid 'envir' argument
– Marcin Kosiński
15 March 2015 в 17:46
Извините, что столкнулся с этой нитью. Если вы хотите отправить электронное письмо из R с помощью Microsoft Outlook, ниже приведен путь к использованию пакета RDCOMClient
. Я сам потратил много времени, пытаясь найти ответ на это. Я подумал, что было бы полезно иметь это решение тоже в этом потоке для пользователей.
Полный кредит для @agstudy, который предоставил исходное решение по этой ссылке - Отправка электронной почты в R через outlook
library (RDCOMClient)
OutApp <- COMCreate("Outlook.Application")
outMail = OutApp$CreateItem(0)
outMail[["To"]] = "test@test.com"
outMail[["subject"]] = "Test Subject"
outMail[["body"]] = "Body of email"
outMail$Send()
library(mailR)
sender <- "abc@gmail.com"
recipients <- c("bcd@gmail.com","xyz@gmail.com")
send.mail(from = sender, to = recipients, subject="Cash_Collected_Bank_transfer",Sys.Date(),"{}", body = Summary1, encoding = "utf-8",
smtp = list(host.name = "smtp.gmail.com", port = 465,
user.name="abc@gmail.com", passwd="abc@1234", ssl=TRUE), authenticate = TRUE, send = TRUE ,attach.files = c(path2),html = TRUE , inline = TRUE )
smtpServer
в Windows – Duck 2 May 2014 в 14:49xor
Outlook; эти опции являются взаимоисключающими. – isomorphismes 13 May 2015 в 15:09