Я сохраняю адрес электронной почты в mysql bdd, и я хотел бы отправить электронное письмо на этот адрес с помощью nodemailer. но я не могу получить электронную почту в конце. Как я могу получить адрес электронной почты от серверной части, пожалуйста?
Я использую сервер Apollo для своей серверной части, и я использую response-apollo для внешнего интерфейса. Я подключаюсь к своему серверу с топором ios. Но я не могу найти способ восстановить адрес электронной почты, введенный в веб-интерфейсе.
Мой код переднего плана:
const CREATE_USER = gql`
mutation createUser($firstName: String!, $lastName: String!, $email: String!) {
createUser(firstName: $firstName, lastName: $lastName, email: $email) {
id
firstName
lastName
email
}
}
`;
class DataInput extends Component {
constructor(props) {
super(props);
this.state = {
firstName: '',
lastName: '',
email: ''
}
}
handleSubmit(e){
e.preventDefault();
axios({
method: "POST",
url:"http://localhost:4000/graphql",
data: this.state
}).then((response)=>{
if (response.data.status === 'success'){
alert("Message Sent.");
this.resetForm()
}else if(response.data.status === 'fail'){
alert("Message failed to send.")
}
})
}
render() {
const { firstName, lastName, email } = this.state
return (
<div>
<div className="flex flex-column mt3">
<input
className="mb2"
value={firstName}
onChange={e => this.setState({ firstName: e.target.value })}
type="text"
placeholder="John"
/>
<input
className="mb2"
value={lastName}
onChange={e => this.setState({ lastName: e.target.value })}
type="text"
placeholder="Do"
/>
<input
className="mb2"
value={email}
onChange={e => this.setState({ email: e.target.value })}
type="text"
placeholder="your@email.com"
/>
</div>
<Mutation mutation={CREATE_USER} variables={{ firstName, lastName, email }}>
{ createUser => <button onClick={createUser}> Submit </button> }
</Mutation>
</div>
)
}
}
И моя функция внутреннего интерфейса для отправки электронной почты:
const sendCertificate = () => {
const transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: process.env.EMAIL,
pass: process.env.PASSWORD,
},
});
transporter.verify((error, success) => {
if (error) {
console.log(error);
} else {
console.log('Server is ready to take messages');
}
});
transporter.sendMail(email, (err, data) => {
if (err) {
console.log(err)
}
else {
console.log('Success');
}
transporter.sendMail({
from: "sendcertificate@gmail.com",
to: email,
subject: "Submission was successful",
text: `Hello ${firstName} ${lastName}\n`
}, function(error, info){
if(error) {
console.log(error);
} else{
console.log('Message sent: ' + info.response);
}
});
}
)
}