You need to sign in to do that
Don't have an account?
apex class for inboud and outbound email service
System.EmailException: SendEmail failed. First exception on row 0; first error: INVALID_EMAIL_ADDRESS, Invalid to address : null: []
here is the test class
@isTest
public Class TestEamilAttchment{
Static testMethod Void TestinBoundEmail()
{
//create a new email and envelope ojbect
messaging.InboundEmail email = new Messaging.InboundEmail();
Messaging.InboundEnvelope env = new Messaging.InboundEnvelope();
//setup the data for the email
email.subject='Create Service Call Log';
env.fromAddress='Tmonson@cms4.com';
email.plainTextBody='Email body\n2332345354454\nTitle';
email.FromName ='Thomas Monson';
Service_Call_Log__C sService_Call_Log = new Service_Call_Log__C();
sService_call_log.Contact__C='00330000012mk3O';
//add an Binary attachment
Messaging.InboundEmail.BinaryAttachment attachment = new Messaging.InboundEmail.BinaryAttachment();
attachment.body = blob.valueOf('My attachmeent text');
attachment.fileName = 'textfileone.txt';
attachment.mimeTypeSubType='Text/Plain';
email.binaryAttachments=new Messaging.inboundEmail.BinaryAttachment[]{attachment};
//add an Text attachmet
Messaging.InboundEmail.TextAttachment attachmenttext = new Messaging.InboundEmail.TextAttachment();
attachmenttext.body = 'my attachment text';
attachmenttext.fileName = 'textfiletwo3.txt';
attachmenttext.mimeTypeSubType='texttwo/plain';
email.textAttachments = new Messaging.inboundEmail.TextAttachment[]{attachmenttext};
//call the email serivce class and text it with the data in the textMethod
EmailToServiceCallLog testInbound= new EmailToServiceCallLog ();
testInbound.handleInboundEmail(email,env);
}
}
in case someone else has this issue the fix was
change
env.fromAddress='Tm@.com' (mailto:env.fromAddress='Tm@.com');
to email.fromaddress
All Answers
here is the other class
global class EmailToServiceCallLog implements Messaging.InboundEmailHandler {
global Messaging.InboundEmailResult handleInboundEmail(Messaging.InboundEmail email,
Messaging.InboundEnvelope envelope) {
Messaging.InboundEmailResult result = new Messaging.InboundEmailresult();
Service_Call_Log__C sService_Call_Log = new Service_Call_Log__C();
Try{
Contact vCon=[SELECT ID, Name, Phone, Email FROM Contact WHERE email = :email.fromAddress LIMIT 1];
sService_Call_Log.Contact__C=vCon.id;
sService_Call_Log.Contact_Phone_Number__C=vCon.Phone;
}
Catch(QueryException e){
system.debug('Query Issue: '+e);
}
sService_Call_Log.Job__C = 'a013000000UHggN';
sService_Call_Log.Subject__C = email.subject;
sService_Call_Log.description__C= email.plainTextBody;
sService_Call_Log.Web_Email__C=email.FromAddress;
sService_Call_Log.Web_name__C=email.FromName;
insert sService_Call_log;
if (email.textAttachments != null)
{
for(Messaging.Inboundemail.TextAttachment tAttachment : email.textAttachments)
{
Attachment attachment = new Attachment();
attachment.Name = tAttachment.fileName;
attachment.Body = Blob.valueOf(tAttachment.body);
attachment.ParentId = sService_Call_log.Id;
insert attachment;
}
}
//Save any Binary Attachment
if (email.binaryAttachments != null)
{
for(Messaging.Inboundemail.BinaryAttachment bAttachment : email.binaryAttachments) {
Attachment attachment = new Attachment();
attachment.Name = bAttachment.fileName;
attachment.Body = bAttachment.body;
attachment.ParentId = sService_Call_log.ID;
insert attachment;
}
}
Messaging.SingleEmailMessage Mail = New Messaging.SingleEmailMessage();
//mail.setTemplateID('00Xc0000000MMPC');
mail.setToaddresses(new String[] {sService_Call_log.Web_email__C});
mail.setReplyTo('ITHelp@cms4.com' (mailto:'ITHelp@cms4.com'));
mail.setSubject('Your Case Has been Created');
mail.setPlainTextBody('Dear Customer, \r\n \r\n Your service request regarding "'+ sService_call_log.subject__C + '" has been created and your assigned LaCosta Representative has been notified. The details of your request "' + sService_call_log.description__c + '" have been communicated. \r\n \r\n We are committed to acting quickly and efficiently on your service request. You will be notified when you request has been fullfiled. Our Target is to fulfill your service request in 24 hours or less. If your service request is not fulfilled within 24 hours you will be notified by a customer serivice representative. \r\n \r\n We appreciate you communicating this service request to us. \r\n \r\n Thank You, \r\n \r\n LaCosta Support');
Messaging.sendEmail(new Messaging.SingleEmailMessage[] {mail});
result.success = true;
return result;
}
}
in case someone else has this issue the fix was
change
env.fromAddress='Tm@.com' (mailto:env.fromAddress='Tm@.com');
to email.fromaddress