set email opt_in when creating contact bean

Can anyone help with how you set a contacts primary email and set opt_out to 1 when a new contact bean is crated

        $contactbean                            = BeanFactory::newBean("Contacts");
        $contactbean->first_name                = $args['FirstName'];
        $contactbean->last_name                 = $args['LastName'];
        // $contactbean->email1                    = $args['Email'];
        $contactbean->portaluser_c              = $args['Email'];
        $contactbean->primary_address_country   = $args['MailingCountry'];
        $contactbean->primary_address_state     = $args['MailingState'];
        $contactbean->agreed_to_pp_c            = $args['Privacy_Policy'];
        $contactbean->save();

I read that i shouldn't be using email1 any more and instead use the email array

have tried 

        $contactbean->emailAddress->addAddress($args['Email']);
        //function addAddress($addr, $primary=false, $replyTo=false, $invalid=false, $optOut=false, $email_id = null, $validate = true)

        $bean = BeanFactory::newBean('EmailAddresses');
        $bean->getBeansByEmailAddress($args['Email']);
        $bean->emailAddress->addAddress($args['Email'], true, false, true, true);

https://support.sugarcrm.com/Documentation/Sugar_Developer/Sugar_Developer_Guide_9.0/Architecture/Email_Addresses/#Creat… 

this page says to pass it as a json object

Parents Reply Children
  • hanks for this Francesca Shiekh we have set this now just also need a way to control by code

  • Hi Ashish Dwivedi, sorry i posted and didnt remove so test code, below was the newbean cotact script

            $contactbean                            = BeanFactory::newBean("Contacts");
            $contactbean->first_name                = $args['FirstName'];
            $contactbean->last_name                 = $args['LastName'];
            $contactbean->portaluser_c              = $args['Email'];
            $contactbean->primary_address_country   = $args['MailingCountry'];
            $contactbean->primary_address_state     = $args['MailingState'];
            $contactbean->agreed_to_pp_c            = $args['Privacy_Policy'];
            $contactbean->emailAddress->addAddress($args['Email'], true, true, true);
            $contactbean->save();

    the 

    $contactbean->emailAddress->addAddress($args['Email'], true, true, true);

    this isnt creating an email in the email_address table or creating an email linked to the contact even though the contact is being created success fully.

    Do you have to run this after $contactbean->save()?